问题
输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。
思路
根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。
代码
#include <stdio.h>
int main()
{
int hun, ten, ind, n;
printf(“result is:”);
for( n=100; n<1000; n++ ) /整数的取值范围/
{
hun = n / 100;
ten = (n-hun100) / 10;
ind = n % 10;
if(n == hunhunhun + tententen + indind*ind) /各位上的立方和是否与原数n相等/
printf("%d “, n);
}
printf(”\n");
return 0;
}
结果
result is:153 370 371 407