level 2
贴吧用户_7VbVSQ8
楼主
#include <stdio.h>
/*水仙花数是指一个N位正整数(N>=3),
它的每个位上的数字的N次幂之和等于它本身。*/
int main()
{
int N;
scanf_s("%d", &N);
int min = 1;
int max = 10;
int w=1;
int i=1;
int sum = 0;
//取出范围 如N=3 则取100-1000
while (i < N) {
min *= 10;
max *= 10;
i++;
}
int t;
for (t = min;t < max;t++) {
int b = t;
while (b > 0) {
int k = b % 10;
b /= 10;
int p;
//算个位数的N次幂
for (p = 0;p < N;p++) {
w *=k;
}
//sum将N次幂进行相加保存
sum += w;
//恢复W值
w = 1;
}
//输出水仙花数
if (sum == t) {
printf("%d\n", sum);
}
}
return 0;
}

2024年08月25日 14点08分
1
/*水仙花数是指一个N位正整数(N>=3),
它的每个位上的数字的N次幂之和等于它本身。*/
int main()
{
int N;
scanf_s("%d", &N);
int min = 1;
int max = 10;
int w=1;
int i=1;
int sum = 0;
//取出范围 如N=3 则取100-1000
while (i < N) {
min *= 10;
max *= 10;
i++;
}
int t;
for (t = min;t < max;t++) {
int b = t;
while (b > 0) {
int k = b % 10;
b /= 10;
int p;
//算个位数的N次幂
for (p = 0;p < N;p++) {
w *=k;
}
//sum将N次幂进行相加保存
sum += w;
//恢复W值
w = 1;
}
//输出水仙花数
if (sum == t) {
printf("%d\n", sum);
}
}
return 0;
}
