24h購物| | PChome| 登入
2009-04-04 12:59:28| 人氣2,480| 回應0 | 上一篇 | 下一篇

阿姆斯壯數

推薦 0 收藏 0 轉貼0 訂閱站台

/*************************************************************/

#include<stdlib.h>  
#include<stdio.h>
main()
{
  int x,y,z,a,b,c,temp,flag,o;
  int m[7];
  while(scanf("%d %d",&x,&y)==2)  
  {  
    flag=0;                         /*歸0*/
    for(a=x;a<=y;a++)  
     {  
       temp=0;o=a;                  /*跑x~Y*/
       while(o>0)  
        {  
         m[temp]=o%10;              /*將各位數字分解然後存入陣列*/
         o=o/10;                    /*將其數剪掉已算的部分*/
         temp++;                    /*算出次方*/
        }             
       for(b=0;b<temp;b++)          /*求各位數字N次之合*/
        {  
         z=1;  
           for(c=0;c<temp;c++)  
          {z=z*m[b];}               /*由於O最後為0 所以直接使用O 是可以的*/
         o=o+z;   
        }               
        if(a==o){printf("%d ",a);flag=1;}                
    }                               /*判斷有沒有*/
    if(flag==0) printf("none");  
    printf("\n");  
  }  
  return 0;  
}

/*********************作法2****************************/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
  int x,y,a,flag=0;
  int m[20]={1,2,3,4,5,6,7,8,9,153,370,371,407,1634,8208,9474,54748,92727,93084,548834};
  while(scanf("%d %d",&x,&y)==2)  
  {   flag=0;
    for(a=0;a<20;a++)
     {
      if(m[a]>=x&&m[a]<=y)
       {printf("%d ",m[a]); flag=1;}            
     }
    if(flag==0) {printf("none");}
    printf("\n");  
  }  
  return 0;  
}

台長: 來源不明
人氣(2,480) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:平面圓形切割
此分類上一篇:數字翻轉

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文