辗转相除法求最大公约数

这个辗转相除由于当时不太理解,所以在一次测试的时候有忘了,当时凭着印象算推,算写,花了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 }

 

posted @ 2014-12-06 10:20  Howe_Young  阅读(271)  评论(0编辑  收藏  举报