作业帮 > 综合 > 作业

c++ 定义函数 求两个数的最大公约数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 10:41:10
c++ 定义函数 求两个数的最大公约数
int gcd(int v1,int v2)
{
while (v2)
{int temp=v2;
v2=v1%v2;
v1=temp;
}
return v1;
}
这个程序我看不明白,调用函数的时候,temp是v2的值,最后temp又赋值给v1,那v1不就是v2的值了嘛.
这是个数学的定理,证明很麻烦的.你看下过程,例如(6,9)
下一步:后面一个数拿出来作为作为这一步的第一个数(9,x),x为6%9 (求余数),为6,
所以是(9,6)
以此类推 下一步(6,3)
下一步(3,0)
当后面一个数是0 ,停止计算,前面一个数就是最大公约数了.