水仙花数:指一个N位正整数的每个位上的数的N次幂之和等于它本身
eg: 135=1^3+3^3+5^3;
要求:输入一个正整数N,编程求出所有N位数的水仙花数并输出。
input:
3
output:
153
370
371
407
#代码:
#include<stdio.h>
int main()
{
int N;
scanf("%d", &N);
int i;
int first=1;
for (i=1; i<N; i++) {
first *= 10;
}
int end = first * 10;
//printf("first=%d end=%d", first, end);
i=first;
while (i<end){
int n = i;
int sum = 0;
do {
int j = n%10;
n /= 10;
int k=j;
int mi=1;
while (mi<N){
k *= j;
mi++;
}
sum += k;
} while ( n>0 );
if (sum == i){
printf("%d\n", i);
}
i++;
}
return 0;
}