寻找阿姆斯特朗数(北理乐学)

#include<stdio.h> 
int main()
   {
	   
	   int i,m,k,n,j,a,aa=1,o=1,aaa,aaaa;
	   scanf("%d",&a);      /*输入一个数的位数a*/
	   
	   
	   
	   
	   for(n=1;n<=a;++n)    /*求a位数的范围,例如a==3,则范围是100~999,即(aa/10)~(aa-1)*/
	   {aa=aa*10;}          /*求a位数的范围,例如a==3,则范围是100~999,即(aa/10)~(aa-1)*/
   
   
   
       aaa=(aa/10);         /*求a位数的范围,例如a==3,则范围是100~999,即(aa/10)~(aa-1)*/
	   aaaa=(aa-1);        /*求a位数的范围,例如a==3,则范围是100~999,即(aa/10)~(aa-1)*/
	   
	   
	   
	   
	   
	   for(n=aaa;n<=aaaa;++n)    /*在aaa~aaaa之间找阿姆斯特朗数*/
	   {
		   
		   k=n;
		   m=0;
		   while(k>0)
		   {   o=1;
			   i=k%10;                 /*求出a位数的 个 十 百 千 万.....位的值*/
			   for(j=1;j<=a;j++){o=o*i;}   /*分别求出它们的的a次方,并累加*/
			   m=m+o;                       
			   k=k/10;
			   
		   }
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   if(m==n)             /*如果是阿姆斯特朗数,输出*/
		     {
			   printf("%d\n",m);
		      }
		   
	   }
	
	

	
	
	
	
 return 0;
   }

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值