标题:请问一下最大公约数的那个求法是怎么推导出来的
只看楼主
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
 问题点数:0 回复次数:4 
请问一下最大公约数的那个求法是怎么推导出来的
想了半天,但是数学功底太菜,一直没思路。忘各路大虾解释一下
就是辗转相除的那里没看懂是什么道理,这样一直求余怎么就能得到最大公约数呢?
int mcd(int a, int b)
{
if( a <= 0 || b <= 0 )
return -1;
int max,min;
max = a > b ? a : b;
min = a + b - max;
int temp;
//辗转相除
while( min )
{ temp = min;
min = max % min;
max = temp;
}
return max; }
搜索更多相关主题的帖子: 最大公约数 min int 数学 max 
2007-09-15 22:26
ACKing
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-4
得分:0 
去看一下欧几里德算法的证明。。。。
2007-09-15 22:28
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
得分:0 
进行中,仍然希望得解

2007-09-15 22:34
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
得分:0 

你写的过于复杂了
int get_comm_div(int m,int n)
{
int tmp;
while(m%n)
{
tmp=m%n;
m=n;
n=tmp;
}
return tmp;
}

[此贴子已经被作者于2007-9-17 18:47:22编辑过]


只有想不到,没有做不到
2007-09-17 18:46
zhu471712418
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-9-18
得分:0 
这个程序 非常好 思路非常清晰 把所有的情况都考虑到了
不懂你写出来了怎么不懂
2007-09-19 12:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-170260-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.095629 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved