armstrong
unknown
c_cpp
4 years ago
977 B
12
Indexable
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n,m;
cin >> n >> m;
int W, w;// 4)在這裡先宣告變數W, w,先不急著定義初始值,等等在while迴圈裡會做
int x=n;
// int sum=0;
// int i=0;
while(x<m){
// 5) x代表現在要檢查的數字,定義W, w為x
W = x;
w = x;
// 6) 跟4)相比,這裡在裡面宣告變數i。在迴圈內外宣告都可以,因為每一輪會重新計算
int i = 0; // 7)位數每次要重新計算,所以在此歸零
while(W>0){ // 1) 如果維持W>=10,以n=150為例,最後算出來i = 2
int y=W/10;
int z=W-10*y;
W=y;
i++;
}
int sum = 0;// 8) sum每次也要重新計算,所以在此歸零
int y, z, c;
while(w>0){ // 2) 與1)同理
y=w/10;
z=w-10*y;
c=pow(z,i);
sum=sum+c;
w=y;
}
if(sum==x)
cout << x << " ";
// 3) W和w在前面兩個while迴圈已經被扣得差不多了,++後下一輪會是錯的
// W++;
// w++;
x++;
}
return 0;
}Editor is loading...