看到书里面实现最大公约数的代码特别长,心里面难受,就自个儿动手了,只需一行代码就可以搞定。
于是一发不可收拾,用了两个算法。后来又补充了一下最小公倍数,不调用GCD,也给出了两个算法:
以上代码在GCC里面,编译通过,但添加-Wall选项,则有警告信息,
gcd.c: In function 'lcm2':
gcd.c:5:1: warning: control reaches end of non-void function
gcd.c: In function 'gcd2':
gcd.c:3:1: warning: control reaches end of non-void function
gcd.c: In function 'gcd1':
gcd.c:2:1: warning: control reaches end of non-void function
呵呵,很明显,因为我上面三个函数没有显式的 return语句。
当然了,要在VS2008里面编译通过,稍微改改就是了:
本文介绍了一种简洁的方法来实现最大公约数(GCD)和最小公倍数(LCM)。通过两种不同的算法,仅使用一行核心代码即可完成计算任务。文章提供了完整的C语言实现,并展示了如何在不同编译器环境下进行适配。
462





