#28657: C++ (最)新手完整解


weber40201@gmail.com (Wade Cheng)

學校 : 國立臺中科技大學
編號 : 175401
來源 : [125.229.217.41]
最後登入時間 :
2023-03-29 00:04:09
a040. 阿姆斯壯數 | From: [114.33.163.121] | 發表日期 : 2021-12-24 02:48

#include <iostream>

#include <cmath>

using namespace std;

int main(){

    int n,m,f,nonum=0,t,num=0,num2=0,sum;

    while(cin>>n>>m){

        if(0<n && n<m && m<=1000000){ //超出int型態會直接跳出跳過ELSE程式停止

            int i = n;

            for(;i<m;i++){

                //各別給變數不能共用(使用同變數數值被改變

                num = i;

                num2 =i;

                t = 0;

                sum = 0;

                //判斷有幾個數字

                while(num>0){

                    t++;        //例:134 大於0進來先+1 +1是4

                    num/=10;    //所以更新數值要把4拿掉

                }

                //各別取值 (從個位數開始..十..百..N)

                while(num2>0){

                   f=num2%10;        //從個位數開始

                   sum+=pow(f,t);   

                   num2/=10;        //更新數值

                } 

                if(i == sum){

                    cout<<i<<" ";

                    nonum++;//這裡存是有阿姆斯壯數的

                }//這裡接else的話,假如有10個就有10個none,題目只需印出一個 

            }

            if(nonum == 0 ){

                cout<<"none";

            }

        }else{

            cout<<"Out of the specified range";

        }

        cout<<endl;

    }

    return 0;

}

    

 

 
ZeroJudge Forum