遞歸實現最大公約數(輾轉相除法)

首先說下最大公約數是個什麼東西,我剛纔已經忘記了不知道這是個什麼東東了.

最大公約數 指兩個或多個整數共有約數中最大的一個。

輾轉相除法

輾轉相除法:輾轉相除法是求兩個自然數的最大公約數的一種方法

例如,求(319,377):

∵ 319÷377=0(餘319)

∴(319,377)=(377,319);

∵ 377÷319=1(餘58)

∴(377,319)=(319,58);

∵ 319÷58=5(餘29)

∴ (319,58)=(58,29);

∵ 58÷29=2(餘0)

∴ (58,29)= 29;

∴ (319,377)=29。

很容易發現,用第一個數去除以第二個數,獲取到餘數,然後再用第二個數去除以餘數。直到餘數爲0就求到了最大公約數

可以得出以下規律:

代碼:

import java.util.Scanner;

public class MaxCommonDIvisor {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int a = in.nextInt();
		int b = in.nextInt();
		
		int c = fun(a,b);
		System.out.println(c);
		
	}
	public static int fun(int a,int b)
	{
		if(b<=a && b == 0)
		{
			return a;
		}else if(a<b)
		{
			return fun(b,a);
		}else
		{
			return fun(b,a%b);
		}
		
	}
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章