c++ 定义函数 求两个数的最大公约数
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/06/14 06:36:39
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的值了嘛.
int gcd(int v1,int v2)
{
while (v2)
{int temp=v2;
v2=v1%v2;
v1=temp;
}
return v1;
}
这个程序我看不明白,调用函数的时候,temp是v2的值,最后temp又赋值给v1,那v1不就是v2的值了嘛.
![c++ 定义函数 求两个数的最大公约数](/uploads/image/z/15705504-0-4.jpg?t=c%2B%2B+%E5%AE%9A%E4%B9%89%E5%87%BD%E6%95%B0+%E6%B1%82%E4%B8%A4%E4%B8%AA%E6%95%B0%E7%9A%84%E6%9C%80%E5%A4%A7%E5%85%AC%E7%BA%A6%E6%95%B0)
这是个数学的定理,证明很麻烦的.你看下过程,例如(6,9)
下一步:后面一个数拿出来作为作为这一步的第一个数(9,x),x为6%9 (求余数),为6,
所以是(9,6)
以此类推 下一步(6,3)
下一步(3,0)
当后面一个数是0 ,停止计算,前面一个数就是最大公约数了.
下一步:后面一个数拿出来作为作为这一步的第一个数(9,x),x为6%9 (求余数),为6,
所以是(9,6)
以此类推 下一步(6,3)
下一步(3,0)
当后面一个数是0 ,停止计算,前面一个数就是最大公约数了.