作者suhorng (飞扬)
看板C_and_CPP
标题Re: [问题] 非递回GCD
时间Thu Jan 29 16:20:03 2009
※ 引述《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
1F:推 herchen:原来如此 3Q^^ 01/29 22:23