論求最大公約數的方法

來源:互聯網
上載者:User

標籤:問題   re   c   演算法   line   acm   

求最大公約數實際上是一個非常簡單的問題,但是在ACM中如何將效率搞的最高也需要一點點技巧。下面將今天收集到的一點資料粘貼在此處。

書上是說: 
1.輸入m、n(m為被除數,n為除數)
2.m/n得餘數r。
3.判斷r=0?是的話n為最大公約數。
4.否則將n賦給m,r賦給n,迴圈2.
輾轉相除法:如: 求(45, 72)

72/45 = 1 餘 27 不等於0,再除
45 /27= 1 餘 18 不等於0,再除
27/18= 1 餘 9 不等於0,再除
18/9 = 2 餘 0 等於0,結束。

所以 (45, 72)=9

int gcd(long a,long b){

long r;
r = a%b;//這裡是可以不管兩者的相對大小的,因為後面兩個數還是要互換
while(r!=0){
a=b;
b=r;
r =a%b;
}
return b;
}//這個就是歐幾裡德的演算法

//就是計算有餘數時就選擇將除數賦值給被除數,將餘數賦值給除數,然後迴圈,直到最後餘數為0時停止
當然,當你求得最大公約數時就相當於求得了最小公倍數,
因為最小公倍數=M*N/最大公約數

例題:杭電2503

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.