为什么这两句代码是不一样的?
问题描述:
#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类型,整除的时候会取整,舍去了小数部分。