C语言每日小练(三)——竖式问题
2014-04-10 22:43
633 查看
例:找出所有形如abc*de(三位数乘以两位数,均非零。)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。
样例输入:2357
样例输出:
<1>
..775
X..33
-----
.2325
2325.
-----
25575
The number of solutions = 1
解:
Code:
样例输入:2357
样例输出:
<1>
..775
X..33
-----
.2325
2325.
-----
25575
The number of solutions = 1
解:
Code:
#include<stdio.h> #include<string.h> 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<strlen(buf) && ok==1; i++) if(strchr(s, buf[i]) == NULL) ok = 0;//将缓冲区的每一个数字与输入的数字序列比较,若不存在,则strchr返回NULL。 if(ok)//若经计算产生的数字均合法,则输出竖式。 { printf("<%d>\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语言每日小练(一)——n!问题
- 每日一点C语言--开灯问题
- C语言每日小练(一)——7744问题
- 刘汝佳 竖式问题(C语言)
- C语言 竖式问题 模拟竖式
- 每日总结关于c语言中不会问题的解答
- C语言每日小练(二)——开灯问题
- C语言每日小练(一)——3n+1问题
- 『每日一题 2012-02-10』猴子选大王问题 C语言实现
- C语言每日小练(三)——abc排列问题
- 每天一点C语言--竖式问题
- c语言中大小端的问题
- C语言数组越界问题实例
- 八皇后问题用C语言解决
- c语言全局变量和局部变量问题汇总
- C语言switch case语句中定义变量问题
- c语言:switch需要注意的问题
- C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
- 【转】C语言中数据类型和结构体大小问题
- C语言中解决变参问题的几个宏