关于a与b的最大公约数与最大公倍数,我的思路是这样的。
用辗转相除法求出最大公约数(对辗转相除法不熟悉的同学建议去掌握什么是辗转相除法,再来参考本博客),然后让a,b中任意一个除以最大公约数再乘以另一个数即可求出最小公倍数,比如6和8,用辗转相除法求出其最大公约数是2,然后6/2*8=24,或者8/2*6=24.
知道思路后就要想想引入几个变量,首先a,b两个变量肯定要,既然用辗转相除法,那么还需要一个变量表示余数,这里设为t,这是容易想到的一些变量。当然辗转相除法肯定要用循环,这里用do while循环可以保证循环先走一遍。既然要用do while循环,那么就要想循环可以进行的条件是啥,对辗转相除法熟悉的话,可以知道最后的余数是零。所以我们可以把循环的条件设为t不等于0。如下图
(辗转相除法被除数最后的值即为最大公约数,即这里的a)
我们可以发现a,b的值已经改变了,但我们还要求最小公倍数。所以我们要设两个变量保存a,b的值 及上图的q,e。然后用q(或e)/a*e(或q)。
为此可以发现我们还需要一个变量表示最小公倍数,这里设为c。所以得到下面的代码:
大功告成