网站设计实施三明网站seo
//Armstrong数具有以下特征:一个n位数等于其各位数的n次方之和。
//例如:153=1^3+5^3+3^3 1634=1^4+6^4+3^4+4^4
#include<stdio.h>
#include<math.h>
//实在不知道的暴力求解方法
int main()
{//Armstrong数具有以下特征:一个n位数等于其各位数的n次方之和。//例如:153=1^3+5^3+3^3 1634=1^4+6^4+3^4+4^4int i,a,b,c,d,e;for(i=10;i<=99999;i++){if(i<100){a=i%10;b=i/10;if(i==a*a+b*b){printf("%d ",i);}}else if(i<1000){a=i/100;b=(i/10)%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c){printf("%d ",i);}}else if(i<10000){a=i%10;b=(i/10)%10;c=(i/100)%10;d=i/1000;if(i==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d){printf("%d ",i);}}else{a=i%10;b=i/10%10;c=i/100%10;d=i/1000%10;e=i/10000;if(i==a*a*a*a*a+b*b*b*b*b+c*c*c*c*c+d*d*d*d*d+e*e*e*e*e){printf("%d ",i);}}} return 0;
}
递归法实现:
#include<stdio.h>
#include<math.h>
//Armstrong数具有以下特征:一个n位数等于其各位数的n次方之和。//例如:153=1^3+5^3+3^3 1634=1^4+6^4+3^4+4^4
int static sum2=0;
int fun(int n,int count)
{ if(n>0){sum2=sum2+pow(n%10,count); fun(n/10,count);} return sum2;
}
int main()
{int i,j,sum,count=0;for(i=10;i<=99999;i++){int count=0;j=i;while(j>0){count++;j=j/10;}sum=fun(i,count);if(i==sum) {printf("%d ",i);}sum2=0;//全局变量置为0 }return 0;
}