#include <stdio.h>int main(){ //定义三位数num,个位数sd,十位数td,百位数hd int num, sd, td, hd; //循环所有三位数 for(hd=0,td=0,sd=0;hd<10&&td<10&&sd<10;hd++,td++,sd++) { num=hd*100+td*10+sd; if(num==hd*hd*hd+td*td*td+sd*sd*sd) { printf("水仙花数字:%d\n", num); } } return 0; }
好厉害!!?
你这样写的话,个位数,十位数,百位数是同时+1的,相当于你只判断了000,111,222,333,444,555,666,777,888,999。如果真要这么写,需要三重for循环,把个位十位百位分开,像下面这样,而且百位要从1开始
#include <stdio.h>
int main(){ //定义三位数num,个位数sd,十位数td,百位数hd
int num, sd, td, hd; //循环所有三位数
for(hd=1;hd<10;hd++)
{
for(td=0;td<10;td++)
{
for(sd=0;sd<10;sd++)
{
num=hd*100+td*10+sd;
if(num==hd*hd*hd+td*td*td+sd*sd*sd)
{
printf("水仙花数字:%d\n", num);
}
}
}
}
return 0;
}