鱼C论坛

 找回密码
 立即注册
查看: 1733|回复: 7

[已解决]最小公倍数问题

[复制链接]
发表于 2017-12-28 10:35:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# 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++;
        }
}

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



最佳答案
2017-12-28 11:55:21
我仔细看了一下,你这代码根本不是辗转相除法。。。不好意思,不过你可以试试自己写一个
来解释一下这段代码的实现,过程如下,取出两个数中的较大者,然后不断取它的倍数,直到它恰好能被另一个小的数整除
举个例子,q = 6,p = 9,通过t将q设置为9,p设置为6,然后循环判断9的倍数是否被6整除,当i=2时,满足条件,输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-28 10:35:57 | 显示全部楼层
关键是到了主程序的t那块,就看不懂了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 10:40:55 | 显示全部楼层
请百度 “辗转相除法”
你先明白算法是怎么回事再说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 11:43:27 | 显示全部楼层
BngThea 发表于 2017-12-28 10:40
请百度 “辗转相除法”
你先明白算法是怎么回事再说

额。。。

                               
登录/注册后可看大图

是这个算法图解吗?这个的话是看懂了。。。。
虽然现在对答案还有点迷糊。。。
总之先谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 11:55:21 | 显示全部楼层    本楼为最佳答案   
我仔细看了一下,你这代码根本不是辗转相除法。。。不好意思,不过你可以试试自己写一个
来解释一下这段代码的实现,过程如下,取出两个数中的较大者,然后不断取它的倍数,直到它恰好能被另一个小的数整除
举个例子,q = 6,p = 9,通过t将q设置为9,p设置为6,然后循环判断9的倍数是否被6整除,当i=2时,满足条件,输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢谢谢谢谢谢谢,,,豁然开朗。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 17:17:50 | 显示全部楼层
本帖最后由 Ln_E 于 2017-12-28 17:22 编辑

更改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-28 17:20:20 | 显示全部楼层
Ln_E 发表于 2017-12-28 17:17
# include

int main()

回错了。。。。是另一帖的内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-29 03:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表