找出所有形如abc*de的算式,abcde均存在于一个集合中k中。例如k:2357,即竖式中所有数都必须存在于集合k中。
输入:
2357
输出:
775
* 33
----------
2325
2325
----------
25575
#include<stdio.h>
#include<string.h>
int main()
{
char s[10], buf[100];
int i, j;
scanf("%s", s);
for( i = 100; i < 1000; i++ )
for( j = 10; j < 100; j++ )
{
int x1 = i, y1 = j, x2 = i * (j % 10), y2 = i * (j / 10), res = i * j;
//x1 为竖式第一行数,依次类推
sprintf(buf, "%d%d%d%d%d", x1, y1, x2, y2, res);//打印到buf数组中
bool flag = true;
for( int k = 0; k < strlen(buf); k++ )
{
if( !strchr(s, buf[k]) )//只要一个不在s中存在,即不满足题目要求
{
flag = false;
break;
}
}
if(flag)
{
printf("%5d\n*%4d\n----------\n%5d\n%4d\n----------\n%5d\n", x1, y1, x2, y2, res);
break;
}
}
printf("%d\n", strlen(buf));
printf("%s", buf);
return 0;
}