别烦我啦 2021-10-28 08:58 采纳率: 71.4%
浏览 35
已结题

求最大公约数和最小公倍数的题,运行错误求解

img

题目是正整数n和m(<=1000000),输入保证结果在int范围内,因为m*n会溢出,我就让m先除于最大公约数了,然后再乘n可是这样就运行错误了,解释说,浮点错误,检查是否有除以0的情况,俺不懂😭

  • 写回答

1条回答 默认 最新

  • 关注

    你代码贴错了吧,可以把相乘的结果用long long 类型保存。
    参考如下:

    #include <stdio.h>
    int main()
    {
        int m,n;
        int t,gys;
        long long gbs;
        scanf("%d %d",&m,&n);
        if(m>n)
            t =n;
        else
            t = m;
    
        //先求公约数
        for (;t>=1;t--)
        {
            if(m%t==0 && n%t==0)
                break;
        }
        gys = t;
    
        gbs = (long long)m/t*n;
        printf("%d 和%d 的公约数是%d,公倍数是%lld",m,n,gys,gbs);
        return 0;
    
    
    }
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月13日
  • 修改了问题 10月28日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳