注册 登录
编程论坛 C++教室

如何求多组数据的最小公倍数

Ganplank 发布于 2012-02-29 16:34, 3866 次点击
#include <stdio.h>
int main ()
{
    int p,r,x,y,temp,i;
    scanf("%d %d",&x,&y);
    if (x<y)
    {
        temp=x;
        x=y;
        y=temp;
    }
    p=x*y;
    while (y!=0)
    {
        r=x%y;
        x=y;
        y=r;
    }
    printf("最小公倍数=%d\n",p/x);
    return 0;
}


我只能做出一组数据的最小公倍数
如何求多个测试用例的最小公倍数?
求解~~~
5 回复
#2
CooperOne2012-02-29 20:52
给你个思路
比方说2,8,9三个数,要求他们的最小公倍数可以先求出前面两个的最小公倍数(8),再用前两个的最小公倍数与下一个数求出新的最小公倍数,那么新的最小公倍数就是三个数的最小公倍数


加个数组和循环吧
#3
Ganplank2012-03-01 12:42
回复 2楼 CooperOne
嗯~~  就是想问下   数组和循环该怎么写?  用switch语句?
#4
榴紫丫2012-03-01 22:21
这个算法对于多个数据更简单一些,先找出数据中的最在数M,再试其能否被数据a,b,c,d  整除,若不能,M++,再试其能否被多个数据共同整除,
直致M可被整除,那么这个M就是最小公倍数
#5
Ganplank2012-03-02 14:09
回复 4楼 榴紫丫
ok  谢谢~
#6
CooperOne2012-03-02 20:52
回复 3楼 Ganplank
比方说
abcde五个数
临时变量i(你喜欢甚至不用都可以)
a和b最小公倍数赋给i
i和c最小公倍数赋给i
i和d最小公倍数赋给i
i和e最小公倍数赋给i
最终的i就是所有的数的最小公倍数

个人感觉比楼上那位仁兄的方法更好理解
1