水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1 3 +5 3 +3 3 。 本题要求编写程序,计算所有N位水仙花数。用C语言编写程序
时间: 2023-10-23 22:41:30 浏览: 117
水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身;用熟悉的语言实现一个函数sxhs
好的,这是一个经典的算法问题,我很乐意帮你解答。以下是一个计算所有N位水仙花数的C语言程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j, sum;
printf("请输入N的值:");
scanf("%d", &n);
printf("%d位水仙花数有:\n", n);
for (i = pow(10, n-1); i < pow(10, n); i++) {
sum = 0;
for (j = i; j > 0; j /= 10)
sum += pow(j % 10, n);
if (sum == i)
printf("%d\n", i);
}
return 0;
}
```
程序中,我们首先输入N的值,然后使用两个for循环来计算N位水仙花数。第一个for循环从pow(10, n-1)开始,到pow(10, n)结束,枚举所有的N位数。第二个for循环则用来计算每个数的每个位上的数字的N次幂之和。如果这个和等于这个数本身,就输出这个数。
希望能够帮助到你!
阅读全文