关于%的问题?
求两个int型的最大公约数,书上程序如下:
#include<iostream>
using namespace std;
int gcd(int v1,int v2)
{
while(v2)
{
int temp=v2;
v2=v1%v2;//???
v1=temp;
}
return v1;
}
int main()
{
cout<<"Enter two values:\n";
int i,j;
cin>>i>>j;
cout<<"gcd:"<<gcd(i,j)<<endl;
return 0;
}
不明白问号处的意思是?比如输入15和123,则输出结果是3,
我分析的思路如下:
i=5j=123
调用gcd函数,就是说gcd(15,123)
即v1=15,v2=123.那么当v2!=0时。temp=v2=123,v2=v1%v2=15%123=??到底怎么回事啊?
%不是求余吗?比如说15%2的结果为1。那么15%123等于多少呢,后面返回的不是v1吗?
v1=temp的嘛,就是等于123?