读书人

最大公约数解决思路

发布时间: 2012-03-28 15:40:03 作者: rapoo

最大公约数
a = num1;
b = num2;

while(b != 0)
{
temp = a%b;
a = b;
b = temp;
}
printf(“%d”,a);

//看不懂原理


[解决办法]
辗转相除法是利用以下性质来确定两个正整数a和b的最大公因子的:
1.若r是a÷b的余数,则gcd(a,b)=gcd(b,r)
2.a和其倍数之最大公因子为a。
另一种写法是:
1.a÷b,令r为所得余数(0≤r<b)。若r=0,算法结束;b即为答案。
2.互换:置a←b,b←r,并返回第一步。
[解决办法]
楼主,建议百度一下“辗转相除法”。
[解决办法]
辗转相除法实现最大公约数。

C/C++ code
while(x != y){   if (x > y)      x = x - y;   if (x < y)      y = y - x;}
[解决办法]
1L正解。
辗转相除法。 《算法导论》数论部分讲的就很详细了。
[解决办法]
lz应该按照计算机的执行步骤一步一步分析一遍,就应该能懂了,实在不行酒写两个数实际分析一下
[解决办法]
辗转相除法,可以查看一下其定义……也不妨多设几个数实践实践下……加深理解……
[解决办法]
这个是辗转相除法,百度上讲的很清楚。
先用大数处以小数,如果整除小数就是最大公约数。
如果不整除,则用上一次的小数来除以上一次的余数。
重复以上过程直到找到最大公约数为止。
[解决办法]
这是数学问题
[解决办法]
探讨
这个是辗转相除法,百度上讲的很清楚。
先用大数处以小数,如果整除小数就是最大公约数。
如果不整除,则用上一次的小数来除以上一次的余数。
重复以上过程直到找到最大公约数为止。

[解决办法]
辗转相除法

自己用两个数试一试
按照那个算法

你就会懂的
[解决办法]
这个本身就是一个数学算法,在好好想想哈
[解决办法]
自己用笔在草稿纸上写写算算就知道原理了

读书人网 >C++

热点推荐