问题:打印出100到999所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
方法:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
#include <stdio.h>
int main()
{
int num,sum = 0;
int i,j,k;
for(num = 100; num <= 999; num++)
{
i = num / 100; //取百位
j = num / 10 % 10; //取十位
k = num %10; //取个位
sum = i * i * i + j * j * j + k * k * k;
if(num == sum) //判断各位数字的3次方之和是否等于原数字
printf("数字%d为水仙花数\n",num);
}
return 0;
}