#include <stdio.h>
#include <stdlib.h>
#include"string.h"
//给一个特定的数字集合,找出形如abc*de(三位数乘以两位数)的算式
//使得在完整的竖式中,所有数字均属于这个数字集合
//竖式,就是小学做数学乘法时列的那种式子
//如:
// 111 abc
// X 11 de
// ----
// 111 x
// 111 y
// ----
// 1221 z
int main()
{
char s[10];//用字符数组存特定数字集合
char buffer[100];
gets(s);
int x,y,z,abc,de;
int count=0;
for(abc=100;abc<=999;abc++)//列举所有三位数和两位数,满足的则采纳
for(de=10;de<=99;de++){
x=abc*(de%10);
y=abc*(de/10);
z=abc*de;
sprintf(buffer,"%d%d%d%d%d",abc,de,x,y,z);//abcdexyz存入一个字符数组
int flag=1;
for(int i=0;i<strlen(buffer);i++){//逐个判断所存数组字符是否存在于特定数组中
if(strchr(s,buffer[i])==NULL){//
flag=0;
break;
}
}
if(flag)
printf("<%d>\n%5d\nx%4d\n\n%5d\n%4d\n\n%5d\n\n",++count,abc,de,x,y,z);
}
return 0;
}
竖式问题
最新推荐文章于 2020-12-08 14:05:49 发布