水仙花数指的是一个n位数(n>=3),他的每一个位上的数字的n次幂之和等于他的本身,求出所有的三位数的水仙花数。
方法一:
先遍历100~999然后拆出每一个数的个位、十位、百位,最后求三次幂之和是否为此数
#include<stdio.h>
#include<math.h>
int main()
{
int i, a, b, c;
for (i = 100; i <= 999; i++)
{
a = i % 10;//取个位数字
b = i / 10 % 10;//取十位数字
c = i / 100;//取百位数字
if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
printf("%d ", i);
}
return 0;
}
方法二:利用三个循环
#include<stdio.h>
#include<math.h>
int main()
{
int i, a, b, c;
for(a=1;a<=9;a++)
{
for (b = 0; b <= 9; b++)
{
for (c = 0; c <= 9; c++)
{
i = a * 100 + b * 10 + c;
if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
printf("%d ", i);
}
}
}
return 0;
}
运算结果:

这篇博客介绍了两种C++编程方法来找出所有三位数的水仙花数。第一种方法通过遍历100到999,分别获取并计算每个数的个位、十位和百位的三次幂之和;第二种方法使用三层循环,分别遍历百位、十位和个位的可能值。两种方法均实现了检查数字是否为水仙花数的功能,并打印出符合条件的数。

374

被折叠的 条评论
为什么被折叠?



