首页 > 代码库 > 辗转相除法求最大公约数

辗转相除法求最大公约数

这个辗转相除由于当时不太理解,所以在一次测试的时候有忘了,当时凭着印象算推,算写,花了20分钟大概才写出来额,浪费了赛场上宝贵的20分钟啊,以此当个教训,学过的东西不能只是做过一遍就完事了,要彻底吃透才行,昨天考试考的很差劲,也是这段时间太贪玩的结果吧,感觉题考的很基础,就是写不出来,还是没有真正的学会,所以还要脚踏实地的学,下面是关于辗转相除求最大公约数的算法,一个是递归,一个是非递归

代码一(非递归):

 1 int gcd(int a, int b) 2 { 3     int t; 4     while (b) 5     { 6         t = a % b; 7         a = b; 8         b = t; 9     }10     return a;11 }

代码二(递归):

1 int gcd(int a, int b)2 {3     return (b == 0 ? a : gcd(b, a % b));4 }

 

辗转相除法求最大公约数