基础算法题——欧几里得
本人为一名普通二本学校自动化专业的大二学生,对编程有着少许兴趣。致力将算法写得更加通俗易懂。
做题心得
该算法题考查的是对欧几里得算法和斐波那契数列的理解。
我遇到过很多与欧几里得算法有关的算法题,但是依旧对欧几里得算法不太理解。本次就通过讲解的形式,加深自己对欧几里得算法的理解。若有不恰当的地方,欢迎评论。
欧几里得题目
题目分析
题目中要求a>b>=0且a+b最小的一组的a与b之和,并已知gcd(a,b)共递归了n次。
按照小郑的逻辑里,应该是先知道a,b的值,再求出递归次数n,但题目却与我的想法完全相反。不过题目条件要求a+b要为最小,提示我们可以用斐波那契数列。
欧几里得算法
欧几里得算法又叫辗转相除法,可以求出两个正整数a,b的最大公约数。
//c语言实现欧几里得算法
int gcd(int a, int b)