求两个数的最大公约数,前些天用C实现的时候,从网上扒了一段代 码用了,什么辗转相减法相除法,高中的知识也是忘的快差不多了,记忆是好几行的代码,今天瞥见《C语言开发范例宝典》中看到一段好简洁的代码:
int gys(int x, int y)
{
return y ? gys(y, x%y) : x;
}
这就是所谓的辗转相除取余吧,利用递归调用实现,简洁明了;
再来看一下最小公倍数的实现:
int gbs (int x ,int y)
{
return x / gys(x, y)*y;
}
关于什么是最小公倍数参见:最小公倍数
额,这是初中还是小学的内容吧,忘了…
————以上是最大公约数与最小公倍数———;
实例38 分数计算器程序,定义了分数的加减乘除运算,懒得细看了,什么时候用到了再过来翻查;