一、求兩個數的最大公約數有兩種方法
1、求差法
對於傳入的兩個數,用較大的數減去較小的數,然后拿差與較小的數相比,若是相等,則這個數就是最大公約數。否則,對於差和較小的數再次重復上述的過程。
關於算法,則可利用while的循環來重復或者利用遞歸算法,這里采用遞歸來求解
1 int division(int n,int m) 2 { 3 if(n<m) 4 division(m,n); //交換n,m的值 5 else if(n==m) 6 return n; 7 else 8 { 9 int temp=n; 10 n=m; 11 m=temp-n; 12 division(n,m); //重復上述過程 13 } 14 }
2、求模法
求模法就是對於傳入的兩個數,用較大的數來對較小的數求模,要是模為零,則較大的數則為最大公約數。若是模不為零,則對於較小的數和模繼續上述的過程。
此過程與上述的求差法幾乎一模一樣,仍利用遞歸法.
1 int division(int n,int m) 2 { 3 if(n<m) 4 division(m,n); //交換m與n 5 else if(m==0) 6 return n; 7 else 8 { 9 int temp=n; 10 n=m; 11 m=temp%n; 12 division(n,m); //重復上述過程 13 } 14 }
對於最小公倍數,則是兩數相乘,然后除以最大公約數