水仙花数(Narcissistic number)是指一个三位数,其各位数字立方和等于该数本身。 也就是说,水仙花数满足以下条件:
如果一个三位数 ABC 是水仙花数,那么:
A³ + B³ + C³ = ABC
举例:
370 = 333 + 777 + 000 = 27 + 343 + 0 = 370
371 = 333 + 777 + 111 = 27 + 343 + 1 = 371
153 = 111 + 555 + 333 = 1 + 125 + 27 = 153
407 = 444 + 000 + 777 = 64 + 0 + 343 = 407
因此,153,370,371,407 都是水仙花数。
下面是代码:
int main()
{
int n = 0;
for (int i = 0; i <= 9; i++)
{
for (int j = 0; j <= 9; j++)
{
for (int k = 0; k <= 9; k++)
{
if (i * i * i + j * j * j + k * k * k == 100 * i + 10 * j + k)
printf("%d " , 100 * i + 10 * j + k);
}
}
}
return 0;
}
这是求三位数以内的水仙花数,若要求更高位的只需多来几次循环嵌套即可