输出所有的水仙花数c语言程序
时间: 2023-05-08 15:01:39 浏览: 108
求水仙花数的c语言程序
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如153=1³+5³+3³,153就是一个水仙花数。现在我们来编写一个输出所有水仙花数的C语言程序。
首先,我们需要循环遍历所有n位数,从100开始到999结束。对于每个数,我们需要计算它每个位上的数字的n次幂之和,并判断是否等于本身。
具体实现代码如下:
```
#include <stdio.h>
#include <math.h>
int main()
{
int n = 3; // 水仙花数的位数
int i, num, sum;
for (num = 100; num <= 999; num++)
{
sum = 0;
for (i = 0; i < n; i++)
{
int digit = num / (int)pow(10, i) % 10;
sum += pow(digit, n);
}
if (sum == num)
{
printf("%d\n", num);
}
}
return 0;
}
```
在循环中,我们首先将当前数的个位、十位、百位上的数字分别计算出来,并逐个求出它们的n次幂。接着将这些n次幂之和赋值给sum,最后判断sum是否等于num,是则输出num。
运行这个程序可以看到,它将所有3位水仙花数(即153、370、371、407)输出了出来。如果想输出更多位数的水仙花数,只需将n的值更改为相应的位数即可。
阅读全文