Ln_E 发表于 2017-12-28 10:35:21

最小公倍数问题

# include <stdio.h>
int max(int x, int y)               //定义形参x, y
{
        if (x > y)
        {return x;}                     //返回值给主程序中实参 t 为X
        else {return y;}                  //返回值给主程序中实参 t 为y
}
        int min(int x, int y)             //定义形参x, y
{
        if (x > y)
        {return y;}                     //返回值给主程序中实参 p 为y
        else {return x;}                  //返回值给主程序中实参 p 为x
}
// return x + y - max(x, y);

void main()
{       
        int q, p;                         // q 中放的是MAX, p 中放的是MIN
        int i, t;                         // i 再次在此指倍数,t在此指的是?
        printf("请输入第一个数: ");
        scanf("%d", &q);
        printf("请输入第二个数: ");
        scanf("%d", &p);
        t = max(q, p);                                                  //就这个地方的 t 起什么作用的?为什么没了就不行?
        p = min(q, p);       
        q = t;       
        i = 1;
        while (i <= p)                  //从此处开始判断两个数的
        {          
                if ((q * i) % p == 0)
                {       
                        printf("%d,%d的最小公倍数是 %d\n", p, q, q * i);
                        i = p;
                }
                        i++;
        }
}

各位大佬,求救。。。。。



Ln_E 发表于 2017-12-28 10:35:57

关键是到了主程序的t那块,就看不懂了。。。

BngThea 发表于 2017-12-28 10:40:55

请百度 “辗转相除法”
你先明白算法是怎么回事再说

Ln_E 发表于 2017-12-28 11:43:27

BngThea 发表于 2017-12-28 10:40
请百度 “辗转相除法”
你先明白算法是怎么回事再说

额。。。https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=135afa78db58ccbf0fb1bd6878b1d75b/377adab44aed2e732b50d5e68d01a18b86d6fabb.jpg
是这个算法图解吗?这个的话是看懂了。。。。
虽然现在对答案还有点迷糊。。。
总之先谢谢了{:5_99:}

BngThea 发表于 2017-12-28 11:55:21

我仔细看了一下,你这代码根本不是辗转相除法。。。不好意思,不过你可以试试自己写一个
来解释一下这段代码的实现,过程如下,取出两个数中的较大者,然后不断取它的倍数,直到它恰好能被另一个小的数整除
举个例子,q = 6,p = 9,通过t将q设置为9,p设置为6,然后循环判断9的倍数是否被6整除,当i=2时,满足条件,输出

Ln_E 发表于 2017-12-28 17:10:05

BngThea 发表于 2017-12-28 11:55
我仔细看了一下,你这代码根本不是辗转相除法。。。不好意思,不过你可以试试自己写一个
来解释一下这段代 ...

谢谢谢谢谢谢谢谢,,,豁然开朗。。。。

Ln_E 发表于 2017-12-28 17:17:50

本帖最后由 Ln_E 于 2017-12-28 17:22 编辑

更改

Ln_E 发表于 2017-12-28 17:20:20

Ln_E 发表于 2017-12-28 17:17
# include

int main()


回错了。。。。是另一帖的内容
页: [1]
查看完整版本: 最小公倍数问题