2018.8.14 周三
我觉得像我这种小弱鸡,还是看一些我更能理解的东西比较好。所以昨天看完《从祖先到算法》之后,随手抄起了另一边的九章算数,开始了膜拜古人之旅。毕竟这本书对刷题有很大的帮助,确实能够拓宽自己的思维。每天看一点,收获一些新的东西。
一、昨天看到的是两个数快速计算公约数,使用辗转相减法。公约数的计算,对于一些小的数,确实比较简单,但一旦涉及大数之间的最大公约数计算,特别是程序里面的计算(大数总不能暴力求解吧),使用辗转相减法是一个既节省时间,又节省运算量的方式。
问题描述如下:有数字a、b,计算a、b的最大公约数。
解法:
1、使用a、b中的大数减去小数,这里以a>b为例,a-b得到数字a1
2、对a1、b,重复步骤1,直到两数相等,那么相等的两个数字,就是最大公约数。
例子:找到14、49的最大公约数:
解:49-14=35(49>14) 35-14=21(35>14) 21-14=7(21>14)14-7=7(14>7)
因为7=7,所以最后最大公约数为7。
求最大公约数应该还有一种辗转相除法,暂时没有看到,今天晚上去看一下有没有这种解法,会整理一下。