C语言每日小练(三)——竖式问题

例:找出所有形如abc*de(三位数乘以两位数,均非零。)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。

样例输入:2357

样例输出:

<1>

..775

X..33

-----

.2325

2325.

-----

25575


The number of solutions = 1

解:

Code:

#include
#include
int main()
{
	int i, ok, abc, de, x, y, z, count = 0;
	char s[11], buf[50];
	scanf("%s", s);
	for(abc = 111; abc <= 999; abc++)
		for(de = 11; de <= 99; de++)
		{
			x = abc*(de%10); y = abc*(de/10); z = abc*de;
			sprintf(buf, "%d%d%d%d%d", abc, de, x, y, z);//将产生的所有数字存入缓冲区。
			ok = 1;
			for(i = 0; i\n", ++count);
				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", count);
	return 0;
}
运行结果:

C语言每日小练(三)——竖式问题_第1张图片

你可能感兴趣的:(狂奔のC/C++,C/C++每日小练)