水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3≤N≤7)。 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。
时间: 2023-05-30 19:03:01 浏览: 125
水仙花数是指一个 n 位数(n ≥ 3),它的每个位上的数字的 n 次幂之和等于它本身 例如,153 是一个水仙花数,因为 1^
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
int start = pow(10, n-1); // 起始值
int end = pow(10, n) - 1; // 终止值
for (int i = start; i <= end; i++) {
int sum = 0;
int temp = i;
while (temp) {
int digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
阅读全文