| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 656 人关注过本帖
标题:求最小公倍数更简单的算法
只看楼主 加入收藏
有味
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-4-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
求最小公倍数更简单的算法
这是在judgeolineshang做的一道题,不过超时了
一下是程序#include<iostream>
using namespace std;
int main(){
    int N,a,b;
    cin>>N;
    while(N--){
        cin>>a>>b;      
        int m,n,i;
        if(a>b)
          {m=a;n=b;}
        else
          {m=b;n=a;}
        for(i=1;i<=n;i++){
            if((m*i)%n==0){
            cout<<m*i;   
            break;
                }        
             }  
           }
      return 0;
    }  请各位指点,更简单的算法。
搜索更多相关主题的帖子: 最小公倍数 算法 
2010-04-03 20:18
有味
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-4-3
收藏
得分:0 
请各位多提提意见,我也能好好学习学习
2010-04-03 20:19
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
收藏
得分:15 
程序代码:
#include <iostream>
using namespace std;

// 辗转相除法求最大公约数
int gcd(int a, int b)
{
    int temp;
    if (a==0) return b;
    if (b==0) return a;
    if (a<b)
        a^=b^=a^=b;
    while (b)
    {
        temp = a%b;
        a = b;
        b = temp;
    }
    return a;
}

int main(void)
{
    int N,a,b;
    cin>>N;
    while(N--)
    {
        cin>>a>>b;
        cout<<a*b/gcd(a,b)<<endl;
    }
    return 0;
}   
收到的鲜花
  • 有味2010-04-05 00:17 送鲜花  3朵  

沉醉东风月下读。柴门闭,莫管客来无。
2010-04-03 21:05
yyblackyy
Rank: 6Rank: 6
等 级:侠之大者
帖 子:98
专家分:457
注 册:2010-3-31
收藏
得分:5 
LS说的不错,两个数的最小公倍数等于这两数的乘积除以这两个数最大公约数
写出最大公约数的算法 两数乘积除以他的返回值(最大公约数函数)就OK了
2010-04-03 21:54
有味
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-4-3
收藏
得分:0 
回复 3楼 书呆
能不能帮我分析// 辗转相除法求最大公约数   
初学者。。。。
2010-04-05 00:16
lyb151
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2010-2-6
收藏
得分:0 
不太清楚,不过学习了。。。。
2010-04-05 09:36
月光321
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:124
注 册:2010-3-22
收藏
得分:0 
a^=b^=a^=b;
与两数交换有什么不同啊?
2010-04-05 11:06
快速回复:求最小公倍数更简单的算法
数据加载中...
 
   



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

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