2022.11.19 PM 02:00 by CBJ
來源 : https://zerojudge.tw/ShowProblem?problemid=b898 出題者 : 2016高雄市資訊學科能力競賽複賽 標籤 : 大數運算、取max 難易度 : 1
解題想法 : 這題其實就是數字比較大的d065,因此若是以C/C++解題的話,數字必須要用字串存,並自行定義比較函式,而Python的話則照d065的方式解題即可。 d065題解 : https://cbjsprogramdiary.com/2022/11/18/d065-%e4%b8%89%e4%ba%ba%e8%a1%8c%e5%bf%85%e6%9c%89%e6%88%91%e5%b8%ab/ 比較函式實作 : 用字串存的數字a,b要如何比大小? 第一,看長度。 我們知道位數較多的數字會較大,所以假如a,b長度不同,則長度較長的會比較大,直接return。 若長度相同,則跑一個for i迴圈,每次比較a[i]和b[i]的大小,若a[i]較大則a較大,直接return a,反之則b[i]較大,直接return b,若一樣則繼續判斷直到有一組a[i],b[i]不相等為止(不會有a,b兩數完全相等的狀況發生)。
//C++ language
//solution link(含註解):
#include<iostream>
#include<string>
using namespace std;
string str_max(string a,string b){
if(a.length()==b.length()){
for(int i=0;i<a.length();i++){
if(a[i]>b[i]) return a;
if(b[i]>a[i]) return b;
}
}
if(a.length()>b.length()) return a;
else return b;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
string a,b,c;
cin>>a>>b>>c;
string ans=str_max(a,str_max(b,c));
cout<<ans<<"\n";
}
return 0;
}

## Python language
## solution link(含註解):
n=int(input())
for i in range(n):
print(max(*map(int,input().split())))

發佈留言