#include<stdio.h>
#include<math.h> // 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。
//例如:153=1 3+5 3+3 3
//本题要求编写程序,计算所有N位水仙花数。
//输入格式:
// 输入在一行中给出一个正整数N(3≤N≤7)。
//输出格式:
//按递增顺序输出所有N位水仙花数,每个数字占一行。
//输入样例:3
//输出样例:
// 153
//370
// 371
// 407
int main()
{
int N,i,x,y,sum=0,count=0;
//scanf("%d",&N);
N=3;
for(i=pow(10,N-1);i<pow(10,N);)
{
sum=0,y=i;
while(i>0)
{
x=i%10;
i=i/10;
sum=sum+pow(x,N);
if(y==sum)
{
printf("%d\n",sum);
}
}
count++;
i=pow(10,N-1)+count;
}
return 0;
}
#include <stdio.h>
#include <math.h> // 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。
//例如:153=1 3+5 3+3 3
//本题要求编写程序,计算所有N位水仙花数。
//输入格式:
// 输入在一行中给出一个正整数N(3≤N≤7)。
//输出格式:
//按递增顺序输出所有N位水仙花数,每个数字占一行。
//输入样例:3
//输出样例:
// 153
//370
// 371
// 407
int main()
{
int N, i, x, y, sum = 0;
scanf("%d", &N);
int m = pow(10, N - 1);
int n = m * 10;
for (i = m; i < n; i++)
{
sum = 0;
y = i;
while (y > 0)
{
x = y % 10;
y = y / 10;
sum = sum + pow(x, N);
}
if (i == sum)
printf("%d\n", sum);
}
return 0;
}