#12799: 有點偷吃步的解法 c++


blackconqueror (boweichen)

學校 : 國立臺南第一高級中學
編號 : 58182
來源 : [220.132.250.41]
最後登入時間 :
2020-06-01 10:17:42
a040. 阿姆斯壯數 | From: [220.132.250.41] | 發表日期 : 2017-10-10 18:10

因為題目給的範圍之內的阿姆斯壯數就只有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;
}

 
#13758: Re:有點偷吃步的解法 c++


timmy940410 (遊艇)

學校 : 臺北市私立延平高級中學
編號 : 69053
來源 : [122.116.197.27]
最後登入時間 :
2021-02-19 11:39:00
a040. 阿姆斯壯數 | From: [114.32.213.13] | 發表日期 : 2018-04-21 20:14

→因為題目給的範圍之內的阿姆斯壯數就只有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;

}

 
#17224: Re:有點偷吃步的解法 c++


ufve0704 (爬 我爬 我爬爬爬 有排行榜這種東西就是要爬 爬過我上面的那...)

學校 : 臺北市私立延平高級中學
編號 : 83268
來源 : [203.72.178.1]
最後登入時間 :
2023-10-30 13:02:50
a040. 阿姆斯壯數 | From: [114.42.221.130] | 發表日期 : 2019-03-29 20:45

→因為題目給的範圍之內的阿姆斯壯數就只有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;

}

}

 




 
ZeroJudge Forum