題目連結: https://zerojudge.tw/ShowProblem?problemid=a040

# 解題思路

以迴圈和 % 求 n 位數整數的個位、十位…,放入陣列,並計算 n,再以迴圈將所有位數的 n 次方加起來,判斷是否等於此整數
記得要再開一個變數特判是否有答案喔~

# 程式碼

#include <iostream>
using namespace std;
int pow(int a,int b){
    int n=a;
    for(int i=1;i<b;i++)
        a*=n;
    return a;
}
int main() {
    int n,m;
    int arr[7];
    while(cin>>n>>m){
        bool ans=false;
        for(;n<=m;n++){
             int i=n,a=0;
             long int sum=0;
             while(i){
                arr[a]=i%10;
                i/=10;
                a++;
             }
             for(int j=0;j<a;j++)
                sum+=pow(arr[j],a);
             if(sum==n){
                cout<<sum<<" ";
                ans=true;
             }
        }
        if(!ans)
            cout<<"none"<<endl;
        else
            cout<<endl;
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay