| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1143 人关注过本帖
标题:刚编的求最大公约数运行结果不理想。(书上的方法就不要推荐了)
只看楼主 加入收藏
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
回复 10楼 ningye
辗转相除法是目前来说效率最高的算法了。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-09-24 09:37
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
收藏
得分:2 
    我刚编的求最大公约数和最小公倍数的程序,望大家指出缺陷
程序代码:
#include<stdio.h>
void main()
{
    int m,n;
    int i;
    printf("input tow numbers: ");
    scanf("%d%d",&m,&n);
    for(i=((m>=n)?n:m)+1;i--;)
    {
        if(m%i==0&&n%i==0)
        {
            printf("The tow number's Greatest common divisor is: %d\n",i);break; //最大公约数
        }
    }
    printf("\n");
    for(i=(m>=n)?m:n;;i++)
    {
        if(i%m==0&&i%n==0)
        {
            printf("The tow number's Least common multiple is: %d\n",i);break;//最小公倍数
        }
    }
}
2011-09-24 10:02
ningye
Rank: 2
等 级:论坛游民
帖 子:33
专家分:22
注 册:2011-9-22
收藏
得分:0 
回复 12楼 c821101017
你第一个不要用&&那逻辑是且应该是||。比如18  48  到i=9的时候18%9==0但是9不是他们的最大公约数。
第二个求最大公倍数直接是m*n/i.i此时是最大公约数。不用再整个for循环了。
还有for语句里面尽量简洁。
郁闷上面再我的编译器里面怎么运行结果不争取
2011-09-24 14:02
快速回复:刚编的求最大公约数运行结果不理想。(书上的方法就不要推荐了)
数据加载中...
 
   



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

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