水仙花数:指一个三位数,其中个、十、百位上的数字的立方和等于该数本身
分析:
(1)题目要求穷举法,则可使用for循环对所有三位数逐个排查
(2)由水仙花的性质可得至少需要四个变量分别代表数本身,个位、十位、百位的数字
(3) 数字为3位数
则个位=该数除以10的余数,十位=该数除以10在除以10的余数,百位=该数除以100
( 能这么做的原因是,定义的数据类型为整数,比如133先除以10能得到13而不是13.3)
代码如下:
#include <stdio.h>
int main()
{
int x,a,b,c;
for(x=100;x<=999;x++)
{
a=x%10;
b=(x/10)%10;
c=x/100;
if(x==a*a*a+b*b*b+c*c*c)
printf("%d\n",x);
}
return 0;
}
结果如下:
153
370
371
407