码迷,mamicode.com
首页 > 其他好文 > 详细

辗转相除法--求最大

时间:2018-12-04 19:58:52      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:...   示例   gcd   strong   辗转相除法   code   ret   最大公约数   最大   

基本操作:设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);
}

 

辗转相除法--求最大

标签:...   示例   gcd   strong   辗转相除法   code   ret   最大公约数   最大   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!