因為題目給的範圍之內的阿姆斯壯數就只有24個,扣除0的話
所以直接建立一個陣列,裡頭除存所有阿姆斯壯數
然後再把範圍拿去一一比較,答案就出來啦~~
code如下:
#include <iostream>
#include <cmath>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int s[24]={1,2,3,4,5,6,7,8,9,153,370,371,407,1634,8208,9474,54748,92727,93084,548834,1741725,4210818,9800817,9926315};
int n,m;
int n1=0,m1=0;
while(cin>>n>>m){
for(int i=0;i<24;i++){
if(n<=s[i]){
n1=i;
break;
}
}
for(int i=0;i<24;i++){
if(m<s[i]){
m1=i-1;
break;
}
}
if((m1==0&n1==0)|(m1-n1-1)<=0){
cout<<"none ";
}else{
while(m1>=n1){
cout<<s[n1]<<" ";
n1=n1+1;
}
}
cout<<endl;
n,m,n1,m1=0;
}
return 0;
}
→因為題目給的範圍之內的阿姆斯壯數就只有24個,扣除0的話
所以直接建立一個陣列,裡頭除存所有阿姆斯壯數
然後再把範圍拿去一一比較,答案就出來啦~~
→這樣寫應該比較簡單一點
#include<iostream>
using namespace std;
int main(){
int x,n[24]={1,2,3,4,5,6,7,8,9,153,370,371,407,1634,8208,9474,54748,92727,93084,548834,1741725,4210818,9800817,9926315};
int a,b;
while(cin>>a>>b){
int a1=0,b1=0;
for(int i=23;i>=0;i--){
if(a>n[i]){
a1+=1;
}
}
for(int i=23;i>=0;i--){
if(b>n[i]){
b1+=1;
}
}
if(a1==b1||b1==0){
cout<<"none";
}else{
while(b1>a1){
cout<<n[a1]<<" ";
a1+=1;
}
}
cout<<endl;
}
return 0;
}
→因為題目給的範圍之內的阿姆斯壯數就只有24個,扣除0的話
所以直接建立一個陣列,裡頭除存所有阿姆斯壯數
然後再把範圍拿去一一比較,答案就出來啦~~
→用迴圈解
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
int a[24]={1,2,3,4,5,6,7,8,9,153,370,371,407,1634,8208,9474,54748,92727,93084,548834,1741725,4210818,9800817,9926315},b,c;
while(cin>>b>>c){
int f=0;
for(int d=b;d<c;d++){
for(int e=0;e<24;e++){
if(d==a[e]){
cout<<a[e]<<" ";
f=1;
}
}
}
if(f==0)
cout<<"none";
cout<<endl;
}
}