×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
解題報告
#35384: c++殘風解
eddiehu
(Eddiehu)
學校 : 不指定學校
編號 : 221727
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [114.27.42.119]
最後登入時間 :
2024-02-09 23:40:06
a024.
最大公因數(GCD)
| From: [114.27.20.69] | 發表日期 : 2023-05-30 18:38
先說解答放在最後面XD。
剛開始直接暴力解像這樣:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,k;
cin>>a>>b;
if(b>a){
swap(a,b);
}
for(int i=1;i<=b;i++){
if(a%i==0&&b%i==0){
k=i;
}
}
cout<<k<<endl;
return 0;
}
這個在一般電腦測試下都行,但在ZeroJudge上執行時會出現超時(TLE)。
所以就要用法二(輾轉相除法)。
正解:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,k;
cin>>a>>b;
if(b>a){
swap(a,b);
}
while(a%b!=0){
k=a%b;
a=b;
b=k;
}
cout<<b<<endl;
return 0;
}
ZeroJudge Forum