竖式问题
Posted low-ctfer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了竖式问题相关的知识,希望对你有一定的参考价值。
竖式问题。
找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中, 所有数字都属于一个特定的数字集合。
输入数字集合(相邻数字之间没有空格),输出所有 竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。
具体格式见样例输出 (为了便于观察,竖式中的空格改用小数点显示,但所写程序中应该输出空格,而非小数 点)。
样例输入:
2357
样例输出:
<1>
..775
X..33
-----
.2325
2325.
-----
25575
The number of solutions = 1
#include<stdio.h> #include<string.h> int main() { int count = 0; char s[20], buf[99]; scanf("%s", s); for(int abc = 111; abc <= 999; abc++) for(int de = 11; de <= 99; de++) { int x = abc*(de%10), y = abc*(de/10), z = abc*de; sprintf(buf, "%d%d%d%d%d", abc, de, x, y, z); int ok = 1; for(int i = 0; i < strlen(buf); i++) if(strchr(s, buf[i]) == NULL) ok = 0; if(ok) { printf("<%d> ", ++count); printf("%5d X%4d ----- %5d %4d ----- %5d ", abc, de, x, y, z); } } printf("The number of solutions = %d ", count); return 0; }
字符是一种特殊的整数
每一个字符都有一个整数编码,称为ASCII码。为了方便书写,C语言 允许用直接的方法表示字符,例如,“a”代表的就是a的ASCII码。
不过,有一些字符直接表 示出来并不方便,例如,回车符是“ ”,而空字符是“