题目为:求出所有这样的三位数,它的2倍,3倍仍然是三位数,这三个三位数使用1到9之间不同的数字。如M=192,2M=384,3M=756!
源代码:#include "stdio.h"
void main()
{
int i,j,k,h,s;
int a[10];
/*int *ak,*m4a1,*mp5;*/
for(i=123;i*3<1000;i++)
{
for(h=1;h<10;h++)
a[h]=0;//请问这部是做什么用的??
a[i/100]=1;//求出各个位的数之后为什么要等于1啊??
a[i/10%10]=1;
a[i%10]=1;
j=i*2;
a[j/100]=1;
a[j/10%10]=1;
a[j%10]=1;
k=i*3;
a[k/100]=1;
a[k/10%10]=1;
a[k%10]=1;
for(s=0,h=1;h<10;h++)//h=1;h<10;h++是控制1-9之间的数字吗?
s=s+a[h];//s=0;s=s+a[h]这部是怎么判断每个位数都不重复的呢?s=0是什么意思啊?
if(s==9)//为什么s==9为真时输出结果呢??
printf("%d %d %d\n",i,j,k);
}
}
请高手能指点迷津啊!!小弟实在有些郁闷啊???