寻找自幂数(寻找水仙花数的2.0版)
功能:用户输入几位数:n,找出并显示所有n位的自幂数(由于int范围有限,9位以下都是支持的)
运行效果:
例如:
输入n = 5
得到结果54748 92727 93084
#include <iostream>
using namespace std;
int pow_self(int x,int y)//x 的 y 次方
{
int i=1;
int result=1;
if(y==0)
{
result = 1;
}
if(y==1)
{
result = x;
}
else if(y>=2)
{
for(i=1;i<=y;i++)
{
result = result*x;
}
}
return result;
}
int main()
{
int n;
int i,j,k;
int Num,temp=0;
int num[20];
int i_Start,i_End;
while(1)
{
cin>>n;
i_Start = pow_self(10,n-1);
i_End = pow_self(10,n)-1;
for(i=i_Start;i<=i_End;i++)
{
Num=i;
for(j=0;j<n;j++)
{
num[j]=Num/pow_self(10,j)%10;
}
for(k=0;k<n;k++)
{
temp = pow_self(num[k],n)+temp;
}
if(temp==Num)
{
cout<<Num<<" ";
temp=0;
}
else if(temp != Num)
{
temp=0;
}
}
cout << endl;
}
return 0;
}