分析
对于每个三位数(100~999) i,分别计算百个十位并取整,将得到的数字计算立方和并与 i 比较,相等就说明是水仙花数。
代码
#include <stdio.h>
int main()
{
int a, b, c, d; //百十个位
for (float i = 100.0; i <= 999.0; i++)
{
a = i / 100; //取百位,强制转换类型
b = (i - 100 * a) / 10; //取十位
c = i - 100 * a - 10 * b; //取个位
d = (a*a*a) + (b*b*b) + (c*c*c); //计算立方和
if (d == i) //相等就输出
printf("%d\t", d);
}
return 0;
}
结果