題目連結: 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; | |
} | |
} |