关于%的问题?

mysonghushu 2011-04-07 02:01:56
求两个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?
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq376472696qq 2011-04-08
  • 打赏
  • 举报
回复
辗转相除法,数学问题,要搞清原理查百度吧。。。
wizard_tiger 2011-04-08
  • 打赏
  • 举报
回复
15%123=15
这时,相当于v1与v2互相交换。
lccccccx 2011-04-08
  • 打赏
  • 举报
回复

while(v2)
{
int temp=v2;
v2=v1%v2;//???
v1=temp;
}

这是数学问题,是在不懂自己据个例子演算下就是
blackstar8888 2011-04-07
  • 打赏
  • 举报
回复
哟!忽悠老百姓!
ouyh12345 2011-04-07
  • 打赏
  • 举报
回复
luciferisnotsatan 2011-04-07
  • 打赏
  • 举报
回复
15%123等于15
mysonghushu 2011-04-07
  • 打赏
  • 举报
回复
哦,明白了,还有个while循环。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧