豎式問題(第二講)

星雨博昱發表於2020-11-03

題目描述
找出所有形如 abc∗de (三位數乘以兩位數)的算式,使得在完整的豎式中,所有數字都屬於一個特定的數字集合。輸入數字集合(相鄰數字之間沒有空格),輸出所有豎式。每個豎式前應有編號,之後應有一個空行。最後輸出解的總數。具體格式見樣例輸出(為了便於觀察,豎式中的空格改用小數點顯示,但所寫程式中應該輸出空格,而非小數點)。
輸入
輸入數字集合(相鄰數字之間沒有空格)。

輸出
輸出所有豎式。每個豎式前應有編號,之後應有一個空行。最後輸出解的總數。具體格式見樣例輸出(為了便於觀察,豎式中的空格改用小數點顯示,但所寫程式中應該輸出空格,而非小數點)。

樣例輸入
2357
樣例輸出

<1>
  775
X  33
-----
 2325
2325
-----
25575

The number of solutions=1
#include<stdio.h> 
#include<string.h>
int main()
{
	int abc,de;
	char a[20];
	char b[100];
	scanf("%s",a);
	int x,y,z;
	int n=0;
    for(abc=100;abc<1000;abc++)
    {
	    for(de=10;de<100;de++)
	    {
	    	int ok=1;
	    	x=abc*(de%10);
		    y=abc*(de/10);
		    z=abc*de;
		    sprintf(b,"%d%d%d%d%d",abc,de,x,y,z);
		    for(int i=0;i<strlen(b);i++)
		    if(strchr(a,b[i])==NULL)ok=0;
            if(ok==1)
            {
            	printf("<%d>\n",++n);
		        printf("%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n",abc,de,x,y,z);
			}
	    }
    }
	printf("The number of solutions=%d",n);
	return 0;
}

相關文章