水仙花数(C语言实现)
PTA(Basic Level) 习题4-6:水仙花数(C语言实现)
分析:系统的pow函数最后一个用例运行超时,所以要自己写一个求幂次的函数。一个数各位的n次方累加,最后和该数比较大小,相等就输出。
#include <stdio.h>
int power(int a, int n)
{
int i,t=a;
for(i=1; i<n; i++)
a=a*t;
return a;
}
int main()
{
int n,i,a,b,sum,t;
scanf("%d",&n);
a=power(10,n-1);
b=power(10,n);
for(i=a; i<b; i++)
{
t=i;
sum=0;
while(t)
{
sum+=power(t%10,n);
t/=10;
}
if(i == sum)
printf("%d\n",i);
}
return 0;
}
还没有评论,来说两句吧...