Re: [問題] 非遞迴GCD
※ 引述《herchen (fk)》之銘言:
: int gcd(int m, int n)
: {
: if( m >= n)
: {
: while(m%n != 0)
: {
: m = n;
^然後m就跟n一樣了
: n = m % n;
^所以這裡n會變成0
^於是再迴圈到上面的時候就發成了除以0的錯誤
可以再多設一個暫時變數來解決問題
譬如說 t = m%n; m = n; n = t;
: }
: return(n);
: }
: else
: {
: while(n%m != 0)
: {
這邊也是
: n = m;
: m = n % m;
: }
: return(m);
: }
: }
其實不用分兩邊判斷 :)
他會自己交換
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.68.73
推
01/29 22:23, , 1F
01/29 22:23, 1F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章