#include<stdio.h>
void main()
{
int A,B,C,i,j,k;
for(i=1;i<10;i++)//做一个循环,在个十百位上按规律赋值
for(j=1;j<10;j++)
for(k=1;k<10;k++)
{
A=i*100+j*10+k;
B=A*2;
C=A*3;
if(k==k*2%10||k==k*3%10||k*2%10==k*3%10) continue;三组数中个位数相同则跳出循环
else if(j==(j*2+k*2/10)%10||(j*2+k*2/10)%10==(j*3+k*3/10)%10||j==(j*3+k*3/10)%10) continue; // 三组数十位相同则跳出本层循环
else if(i==(i*2+(j*2+k*2/10)/10)||(i*2+(j*2+k*2/10)/10)==(i*3+(j*3+k*3/10)/10)||i==(i*3+(j*3+k*3/10)/10) continue; //三组数中友百位数相同则跳出本层循环
else A=i*100+j*10+k; //得到的值赋给A
}
printf("A=A,B=A*2,C=A*3",A);//利用A的值输出三组数
}
//该算法的思想是按位循环,依次判断查找符合情况的三组数,这个是C程序,没在C++上运行,我在C环境运行,显示没错误,现在大三了,上来跟大家学习交流if else语句里的意思是分别查对每个数位是否相同,但是要考虑低位向高位进位的情况,所以加了低位数乘2或乘3在除以10 对于A没有必要 因为在1到9里面没有自身大于10需要进位的,呵呵,啰嗦了一大堆,希望指正,共同学习。
追问跑了一下 有問題
追答#include
void main()
{
int i,j,k;
for(i=1;i=1) continue;
else printf("the numbers are:\n");
printf("%d %d %d\n",i*100+j*10+k,i*200+j*20+k*2,i*300+j*30+k*3);
}
} //你看一下这个 我修改了一下J 也就是十位数的if语句 出了点错误 考虑不周全 呵呵 现在改了一下 试试 我这里没有TC 但是可以在KEIL下模拟 只能看程序有没有编译错误 看不到运行结果 不好意思