所谓"水仙花数"是指一个3位数, 其各位数字立方和等于该数本身。
例如, 153是水仙花数, 因为153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3"
本题的要求是输出所有的水仙花数,代码如下
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i,a, b, c;
for (i = 100; i < 1000; i++)
{
a = i / 100 % 10;//表示百位
b = i / 10 % 10;//表示十位
c = i % 10;
if (a * a * a + b * b * b + c * c * c == i)
printf("%d\n", i);
}
return 0;
}
运行代码后,可以得到四个水仙花数为:153,370,371,407
本题结束
所用到一处知识点为个十百位的表示,个位表示为i % 10,十位为i /10 %10,百位为i / 100 %10,后续位数可以以此类推。