armstrong

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
977 B
5
Indexable
Never
#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;
}