#21203: AC 但感覺解法有點冗長 僅供參考


rakyjack (WaYe)

學校 : 國立中興大學
編號 : 103345
來源 : [59.120.78.235]
最後登入時間 :
2024-10-17 17:13:28
a040. 阿姆斯壯數 | From: [61.216.161.70] | 發表日期 : 2020-04-30 12:35

#include <iostream>

 

using namespace std;

 

int power(int base,int index){

    if(index==1)

        return base;

    return base*power(base,index-1);

}

int digits(int num,int tool,int len){

    if(num/tool==0)

        return len;

    digits(num,tool*10,len+1);

}

int main(){

    int numstart,numend,digit,*digitnum;

    while(cin>>numstart>>numend){

        bool exist=false;

        for(numstart;numstart<=numend;numstart++){

            int sum=0,divi=1;

            digit=digits(numstart,1,0);

            digitnum=new int[digit];

            for(int i=0;i<digit;i++){

                digitnum[i]=(numstart/divi)%10;

                divi*=10;

                sum+=power(digitnum[i],digit);

            }

            if(numstart==sum){

                cout<<numstart<<" ";

                exist=true;

            }

 

            delete [] digitnum;

 

        }

        if(exist==false)

            cout<<"none"<<endl;

        else

            cout<<endl;

 

    }

    return 0;

}

 

 
ZeroJudge Forum