看到书里面实现最大公约数的代码特别长,心里面难受,就自个儿动手了,只需一行代码就可以搞定。
于是一发不可收拾,用了两个算法。后来又补充了一下最小公倍数,不调用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里面编译通过,稍微改改就是了: