1、什么是水仙花数?
水仙花数也被称为超完全数字不变数、自恋数,是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
2、求解0~999的水仙花数
设计三重循环,最外层循环百位,中间层循环十位,最里层循环个位,遍历0~999所有数字进行判断即可。
3、具体实现
void deffodil()
{
for(int i = 0; i < 9; i++)
for(int j = 0; j < 9; j++)
for(int k = 0; k < 9; k++)
if(pow(i, 3) + pow(j, 3) + pow(k, 3) == i*100 + j*10 + k)
printf("%d\t", i*100 + j*10 + k);
}
4、测试
#include <stdio.h>
#include <math.h>
void deffodil()
{
for(int i = 0; i < 9; i++)
for(int j = 0; j < 9; j++)
for(int k = 0; k < 9; k++)
if(pow(i, 3) + pow(j, 3) + pow(k, 3) == i*100 + j*10 + k)
printf("%d\t", i*100 + j*10 + k);
}
int main()
{
deffodil();
return 0;
}
结果: