错误:这个题目并不难,但一直卡在N==7时间超时,看了一些大佬的也都是自己写了pow函数。我自己写了一个pow函数,果然通过了。
#include<stdio.h>
int issxh(int p,int n);
int _pow(int x,int y);
int main()
{
int N,m,n,i;
scanf("%d",&N);
m=_pow(10,N-1);
n=_pow(10,N);
for(m;m<=n;m++)
{
if(issxh(m,N))
printf("%d\n",m);
}
return 0;
}
int issxh(int p,int n)
{
int sum=0;
int num,number;
number=p;
while(number)
{
num=number%10;
sum+=_pow(num,n);
number/=10;
}
if(p==sum)
return 1;
else
return 0;
}
int _pow(int x,int y)
{
int sum=1;
for(int i=1;i<=y;i++)
sum*=x;
return sum;
}
这个题有个bug,你不写math.h头文件也可以编译成功。