先解释下题目,题目已经说明竖式其实就是小学的那种手算的过程,只不过这里用计算机输出。
整个题目其实就是字符匹配问题。buf就是临时存放的字符数组
strchr()函数就是在某个字符串中查找单个字符
sprintf就是向字符串中输出,具体可以百度
这是借鉴刘汝佳那本书代码
#include<stdio.h>
#include<string.h>
int main()
{
char s[20];
char buf[99];
scanf("%s",s);
int i,j,z;
for(i = 111;i <=999;i++)
{
for(j =11;j <=99;j++)
{
int ok = 0;
int x = i * (j % 10);
int y = i * (j / 10);
z = i * j;
sprintf(buf,"%d%d%d%d%d",i,j,x,y,z);
for(int k =0;k < strlen(buf);k++)
{
if(strchr(s,buf[k]) == NULL)
ok = 1;
}
if(!ok)
printf("%d %d %d",i,j,z);//此处为了方便,跟样例输出格式不一样
}
}
return 0;
}