水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。输入一个数字n,输出n位数的水仙花数。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int st,ed;
st=pow(10,n-1);
ed=pow(10,n)-1;
int i,t,x;
double sum;
for(i=st;i<=ed;i++)
{
x=i;
sum=0;
while(x!=0)
{
t=x%10;
x=x/10;
sum=sum+pow(t,n);
}
if(sum==i)
{
printf("%0.lf ",sum);
}
}
return 0;
}