搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 【原创】求最大公约数的两种代码(递归与非递归)
标题:
【原创】求最大公约数的两种代码(递归与非递归)
只看楼主
yu_hua
等 级:
论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
结帖率:
71.43%
楼主
问题点数:0 回复次数:1
【原创】求最大公约数的两种代码(递归与非递归)
//用递归法求最大公约数
int gcd( int a, int b )
{
return b ? gcd(b,a%b) : a;
}
//用循环法求最大公约数
int gcd( int a, int b )
{
while(b)
{
int tmp;
tmp = b;
b = a%b;
a = tmp;
}
return a;
}
欢迎大家指正!
搜索更多相关主题的帖子:
递归
最大公约数
代码
2010-11-04 10:39
yu_hua
等 级:
论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
第
2
楼
得分:0
//求最小公倍数的代码如下
int lcm( int a, int b )
{
return a/gcd(a,b)*b;
}// 先除后乘不容易“溢出”
三个数的最大公约数:gcd(a,gcd(b,c))
三个数的最小公倍数:lcm(a,lcm(b,c))
注意:三个数的最小公倍数
未必等于
三个数的乘积÷三个数的最大公约数
例如:12、24、36的最大公约数是12,最小公倍数是72。
更多数的情况请大家依此类推。
2010-11-04 10:53
2
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-324938-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.453794 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved