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

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

问题描述:


#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呀

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