#include<stdio.h>
#include<math.h>
int main()
{
int n,ret,sum;
scanf("%d",&n);
int num=1;
int i=1;
while(i<n)
{
num*=10;
i++;
}
i=num;
for(;i<num*10;i++)
{
ret=i;
sum=0;
do
{
int d=ret%10;
ret/=10;
int p=d;
int j=1;
while(j<n)
{
p*=d;
j++;
}
sum+=p;
}while(ret>0);
if(i==sum)
{
printf("%d\n",sum);
}
}
return 0;
}
//原来函数用来switch语句和pow函数,输出时间时35s左右。??
/*int main()
{
int n;
scanf("%d",&n);
int first=1;
int i=1;
while(i<n)
{
first*=10;
i++;
}
i=first;
while(i<first*10)
{
int t=i;
int sum=0;
do
{
int d=t%10;
t/=10;
int p=d;
int j=1;
while(j<n)
{
p*=d;
j++;
}
sum+=p;
}while(t>0);
if(sum==i)
{
printf("%d\n",sum);
}
i++;
}
}*/
新手水仙花数 C语言
最新推荐文章于 2023-07-11 17:02:42 发布