| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3922 人关注过本帖, 1 人收藏
标题:修正“求最大公约数和最小公倍数”: C经典算法: 欧几里德算法(辗转相除法)
取消只看楼主 加入收藏
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏(1)
 问题点数:0 回复次数:0 
修正“求最大公约数和最小公倍数”: C经典算法: 欧几里德算法(辗转相除法)
我上次写了个求最大公约数和最小公倍数,后经高手指点,发现其效率很低.所以查询资料,找到了这个c的经典算法,拿出来和和我一样菜的兄弟们分享一下:
#include <stdio.h>
int gcd(int a, int b) {
    if (b == 0) {
        return a;
    }
    return gcd(b, a % b);
}
int main(void) {
    int m, n, max, temp;
    printf("Please input two numbers:\n");
    scanf("%d%d", &n, &m);
    if (m < n) {
        temp = m;
        m = n;
        n = temp;
    }
    max = gcd(m, n);
    printf("The max commom divisor is: %d", max);
    printf("\n The min common multiple is: %d", m * n / max);
}
搜索更多相关主题的帖子: 欧几里德 除法 算法 最大公约数 最小公倍数 
2008-03-13 09:52
快速回复:修正“求最大公约数和最小公倍数”: C经典算法: 欧几里德算法(辗转相除 ...
数据加载中...
 
   



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

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