首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求公倍数 [已结贴,结贴人:zhoufuguo8802]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhoufuguo8802
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 20:21:18 楼主
    给2个正整数a,b(1 <=a,b <=10100),求a和b的最小公倍数。
    请给位大侠指教!(最好用C++)
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baihacker
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-08-19 20:28:071楼 得分:2
    C/C++ code
    int gcd(int a, int b) {return b ? gcd(b, a%b) : a;} int main() { cout << 3 * 7 /gcd(3, 7) << endl; cin.get(); return 0; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • elegant87
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 20:41:282楼 得分:5
    C/C++ code
    /*求任意三个数的最小公倍数 算法:a、b、c三个数,先求a、b两个数的最小公倍数m,然后 再求m、c两个数的最小公倍数n,n即为三个数的最小公倍数。*/ #include<iostream> using namespace std; int lease_common_multiple(int i,int j);//求最小公倍数的函数声明 int main() { int a,b; int m,n; cout<<"Enter two data: "; cin>>a>>b>>c; m=lease_common_multiple(a,b);//求a、b两数的最小公倍数 cout<<"\nthe lease common multiple is: "<<m<<endl; return 0; } int lease_common_multiple(int i,int j)//求两个最小公倍数的函数定义 { int p,g; int greatest_common_divisor(int m1,int n1);//求两个数的最大公约数的函数声明 g=greatest_common_divisor(i,j);//求i、j两个数的最大公约数 p=i*j/g; return p; } int greatest_common_divisor(int m1,int n1)//求两个最大公约数的函数定义,用辗转相除法求得 { int t,temp; if(m1<n1) { temp=m1; m1=n1; n1=temp; } while(n1!=0) { t=m1%n1; m1=n1; n1=t; } return m1; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • richbirdandy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 20:58:313楼 得分:2
    欧几里得辗转相除法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqls_xqls
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 22:06:404楼 得分:5
    #include <iostream.h>
    #include <math.h>

    void main()
    {
    int i,j,a,b,c,m,n;
    cin>>i>>j;
    a=i>j?i:j;
    b=i <j?i:j;
    while(a%b!=0)
    {
    c=a%b;
    a=b;
    b=c;
    }
    m=b;
    n=(i/m)*(j/m)*m;
    cout < <"最大公约数是:" < <m < <endl;
    cout < <"最小公倍数是:" < <n < <endl;
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liaohongwei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 00:04:505楼 得分:1
    引用 1 楼 baihacker 的回复:
    C/C++ codeintgcd(inta,intb)
    {returnb?gcd(b, a%b) : a;}intmain()
    {
        cout < <3*7/gcd(3,7) < <endl;
        cin.get();return0;
    }



    good!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • AlwaysSLH
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 00:08:246楼 得分:2
    引用 3 楼 richbirdandy 的回复:
    欧几里得辗转相除法


    很经典的算法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • alpha81
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 11:51:417楼 得分:0
    不知道怎么算,写程序应该简单的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zclever
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 12:29:168楼 得分:3
    引用 4 楼 xqls_xqls 的回复:
    #include <iostream.h>
    #include <math.h>

    void main()
    {
    int i,j,a,b,c,m,n;
    cin>>i>>j;
    a=i>j?i:j;
    b=i <j?i:j;
    while(a%b!=0)
    {
    c=a%b;
    a=b;
    b=c;
    }
    m=b;
    n=(i/m)*(j/m)*m;
    cout < <"最大公约数是:" < <m < <endl;
    cout < <"最小公倍数是:" < <n < <endl;
    }
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved