聆听逝去的流 2021-09-12 11:13 采纳率: 100%
浏览 44
已结题

为什么这两句代码是不一样的?


#include<iostream>
using namespace std;

int main()
{
    int n,k,i,j,x,y,z;
    while(cin >> n >> z)
    {
        for(i=1;i<n;i++)
        {
            cin >> y;
            k=z,j=y;
            if(y>z)
            {
                y=y+z;
                z=y-z;
                y=y-z;
            }
            while(y)
            {
                x=z%y;
                z=y;
                y=x;
            }
           z=k/z*j;
        }
        cout << z << endl;
    }
    return 0;
}

这里的z=k/zj改成z=kj/z就不一样了,前者能过,后者不行。k和j的最大公约数就是z呀

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-09-12 11:20
    关注

    你都是int类型,整除的时候会取整,舍去了小数部分。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 9月12日

悬赏问题

  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多