问题 C: 竖式
时间限制: 1 Sec 内存限制: 128 MB提交: 1278 解决: 253
[ 提交][ 状态][ 讨论版]
题目描述
找出所有形如abc*dc(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。
例如,当该数字集合为2357时,只有一个竖式满足条件,该竖式中出现的所有数字都属于集合2357,该竖式为(*表示空格):
**775
X**33
-----
*2325
2325*
-----
25575
输入
输入包括多行数据,每行一个正整数,表示该数字集合
输出
对每行输入,输出一个整数,即满足条件的竖式个数,然后输出换行
样例输入
2357
样例输出
1
#include<stdio.h>
#include<string.h>
char s[20];
int z,x,y;
int abc,de;
char str[100];
int main()
{
while(scanf("%s",str)!=EOF)
{
int count=0;
int flag;
for(abc=100;abc<=999;abc++)
{
for(de=10;de<=99;de++)
{
x=abc*(de%10);
y=abc*(de/10);
z=abc*de;
sprintf(s,"%d%d%d%d%d",abc,de,x,y,z);
flag=1;
for(int i=0;i<strlen(s);i++)
{
if(strchr(str,s[i])==NULL) flag=0;
}
if(flag==1)
count++;
}
}
printf("%d\n",count);
}
}