GCD 学习
gcd(greatest common divisor)是用来求最大公约数的,在有一些题目中数字很大,直接做可能会出现奇奇怪怪的问题。
手写的gcd函数运用了递归的思想,也是我们以前学过的辗转相除法的应用,最关键的就是这个式子:gcd(b%a,a);
下面是常用的写法
int gcd(int a, int b){ return a == 0 ? b : gcd(b % a, a); }
在c++里面有一个函数感觉非常好用__gcd(),当然如果手写也没有问题。
gcd(greatest common divisor)是用来求最大公约数的,在有一些题目中数字很大,直接做可能会出现奇奇怪怪的问题。
手写的gcd函数运用了递归的思想,也是我们以前学过的辗转相除法的应用,最关键的就是这个式子:gcd(b%a,a);
下面是常用的写法
int gcd(int a, int b){ return a == 0 ? b : gcd(b % a, a); }
在c++里面有一个函数感觉非常好用__gcd(),当然如果手写也没有问题。