首页 > 其他 > 详细

辗转相除法--求最大

时间:2018-12-04 19:46:17      阅读:147      评论:0      收藏:0      [点我收藏+]

基本操作:设a<b,a÷b=q...r1

若r1=0,则最大公约数为r1

若r1!=0,则b÷r1=q...r2

r1÷r2=q...r3

直到rn为0为止

 

示例:280 380

280÷380=0...280

380÷280=1...100

280÷100=2...80

100÷80=1...20

80÷20=4...0

所以,最大公约数是20

 

代码一:循环

int gcd(int a,int b)//默认a<b
{
    while(a%b!=0)
    {
        int t=a%b;
        a=b;
        b=t;
    }
    return b;
}

代码二:递归

int gcd(int a,int b)//默认a<b
{
    return b==0?a:gcd(b,a%b);
}

 

辗转相除法--求最大

原文:https://www.cnblogs.com/xyfs99/p/10066177.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!