打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
#include
int main() {
int i, j, k;
// 枚举所有三位数
for(i = 1; i
for(j = 0; j
for(k = 0; k
int num = i * 100 + j * 10 + k; // 构造三位数
// 判断是否为水仙花数,同时限制范围在100到999之间
if(num >= 100 && num
printf("%d\n", num); // 打印水仙花数
}
}
}
}
return 0;
}
程序中使用了三重循环,分别枚举了三位数的百位、十位和个位。通过这三个循环变量 i、j、k,可以得到所有的三位数。然后,对于每个三位数,计算它的各位数字的立方和,如果等于这个数本身,就说明它是一个水仙花数,将其打印出来。同时,还加了一个范围的限制,只打印100到999之间的水仙花数。
这个程序的思路比较简单,但需要注意的是,循环变量的范围和顺序不能写错。另外,为了避免重复计算,可以将三次方的结果存储在变量中,而不是每次都重新计算。
领取专属 10元无门槛券
私享最新 技术干货