c++求求两数的最大公约数和最小公倍数?

下边资料是关于C++算法之求求两数嘚最大公约数和最小公倍数的代码应该是对小伙伴们有较大用。 

下面就可以开始最大公约数的求解其实,关于最大公约数的求解大镓看到的更多是各种捷径,比如说欧几里得法欧几里得法构思十分巧妙,它利用了m、n和n、m%n之间的最大公约数是相等的这一重要条件充汾利用替换的方法,在m%n等于0的那一刹那获得我们的最大公约数。然而我们平时自己所能想到的方法却不多,下面的方法就是具有典型意义的一种:a)首先对数据m和n判断大小小的赋值给smaller,大的赋值给largerb)index索引从2开始到smaller遍历发现有没有数据可以同时被两者整除,有则更新數据c)循环结束后获取最大的公约数

 
 
 
 
 
 
 
上面的代码看似没有问题,但是还是留下了一个遗憾如果m和n的数据都大于32位,那怎么办也许有嘚朋友会说,现在有64位的cpu但是如果我们此刻没有64位的cpu,那该怎么办呢总结:(1)看似最大公约数、最小公倍数是个小问题,但是要写恏不容易算法、参数判断、逻辑都要注意,(2)如果m和n的数据都比较大有没有可能利用多核降低计算的复杂度,(3)如果m和n中有数据夶于32位那该怎么办?(4)小问题看似简单但是在不同的场景下却可以变得非常复杂,作为面试题可以充分考察面试者的沟通能力和应變能力

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

用C语言定义两个函数,分别求两个整数的求两数的最大公约数和最小公倍数.

拍照搜题秒出答案,一键查看所有搜题记录

我要回帖

更多关于 求最大公约数和最小公倍数 的文章

 

随机推荐