刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

用分治法求两个数的最大公约数,代码和运行结果如下,请选择合适的代码完成程序?( ) def fun(m, n): if m % n == 0: return n else: return __________ print(fun(98, 56)) 程序运行结果如下: 14

A
fun(n, m-n)
B
fun(n, m%n)
C
fun(m, m-n)
D
fun(m, m%n)
使用微信搜索喵呜刷题,轻松应对考试!

答案:

B

解析:

【喵呜刷题小喵解析】:
在求两个数的最大公约数时,常用的算法是欧几里得算法,也被称为辗转相除法。该算法的基本思想是:用较大的数除以较小的数,再用出现的余数去除较小的数,如此反复,直到余数为零为止,此时较小的数即为两数的最大公约数。

在给出的代码中,`fun(m, n)`函数应该返回`m`和`n`的最大公约数。当`m`能被`n`整除时,`n`就是最大公约数,直接返回即可。否则,应该调用递归函数来计算`m`和`n`的最大公约数。

在给出的选项中,只有`fun(n, m%n)`符合欧几里得算法的思想。当`m`不能被`n`整除时,用`m`除以`n`的余数作为新的被除数,继续递归调用`fun`函数,直到余数为零为止。

因此,应该选择B选项`fun(n, m%n)`。
创作类型:
原创

本文链接:用分治法求两个数的最大公约数,代码和运行结果如下,请选择合适的代码完成程序?( ) def fun(

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share