对所有的三位数乘两位数 判断其过程中出现的数值都是 输入的数字中的
#include <stdio.h> #include <iostream> using namespace std; int main() { char s[20],buff[100]; scanf("%s",s); int abc,de,x,y,z,flag=0,count=0; for(abc=111;abc<=999;abc++) for(de=11;de<=99;de++) { x=abc*(de/10);y=abc*(de%10);z=abc*de; sprintf(buff,"%d%d%d%d%d",abc,de,x,y,z); flag=1; for(int i=1;i<=strlen(buff);i++) { if(strchr(s,buff[i])==NULL) flag=0; } if(flag==1) { printf("<%d> ",++count); printf("%5d X%4d ------- %5d %4d ------- %5d ",abc,de,y,x,z); } } printf("the number is =%d ",count); system("pause"); }
printf("<%d>
",++count); ++count 是从 1 2 3 …… count++ 是从 0 1 2 ……
if(strchr(s,buff[i])==NULL) 判断一个字符串中 某个字符第一次出现的位置
sprintf(buff,"%d%d%d%d%d",abc,de,x,y,z); 复制字符串 还有拼接字符串 还有把数字 变成字符串