時間限制: 1000 ms 記憶體限制: 65536 kb
提交數: 2410 通過數: 1531
給定兩個正整數,求它們的最大公約數。
輸入一行,包含兩個正整數(<1,000,000,000)。
輸出乙個正整數,即這兩個正整數的最大公約數。
6 9no
#include
using
namespace
std;
int f(int a,int b)
return f(b,a%b); //輾轉相除法
}int main()
這道題要用到輾轉相除法求最大公約數。
x與y的最大公約數與x對y的餘數的最大公約數是相同的,即f(x, y) = f(y, y%x),可以把原問題轉化為求兩個更小數的最大公約數,直到其中乙個數為0。
求最大公約數
最新用了三種演算法實現了求最大公約數的演算法,用的c 寫的,最大公約數也是我們生活中常見的問題 1 窮舉法 主要 如下 if a b for i 1 i a i 演算法分析 窮舉法先將a,b兩值比較大小並且互換,再進行與各種數的整除,如果這個數能同時被a,b整除,那麼這個數就為最大公約數,這種演算法...
求最大公約數
暴力列舉法很簡單,從較小整數的一班開始,試圖找到乙個合適的整數i,檢查這個整數i是否被a和b同時整除 暴力列舉法求最大公約數 param a param b return public static int getgreatestcommondivisor v1 int a,int b for in...
求最大公約數
1.輾轉相除法 a.具體思路 兩個正整數a和b a b 它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。比如10和25,25除以10商2餘5,那麼10和25的最大公約數,等同於10和5的最大公約數。有點類似動態規劃的思想,逐步減小問題規模,最後求到問題的解。int test1 int a,...