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

单选题

小明用“分治算法”编写了一个函数。他的任务是计算1+2+3+......+100的和。 请选择下列哪一项填入**①**处,使程序运行成功?( ) def sum_range(start, end): if start == end: return start mid = (start + end) // 2 return sum_range(start, mid) + **① **print(sum_range(1, 100))

A
sum_range(mid, end)
B
sum_range(mid+1, end)
C
sum_range(mid+1, end+1)
D
sum_range(mid, end-1)
使用微信搜索喵呜刷题,轻松应对考试!

答案:

B

解析:

小明使用"分治算法"来编写计算1到100的和的函数。分治算法的基本思想是将问题分解为较小的子问题,然后递归地解决这些子问题,最后将子问题的解组合起来得到原问题的解。在这个问题中,函数通过递归地将求和的问题分解为更小的区间,直到区间只有一个元素为止。因此,在递归的每一步,我们需要计算左半部分子序列的和和右半部分子序列的和,然后将它们相加。对于给定的区间[start, end],当递归到只剩一个元素时,需要返回该元素的值。然后,在递归返回之前,需要将当前区间的右边界加一(即包括当前区间的最后一个元素),以便计算下一个区间的和。因此,正确的选项是B:sum_range(mid+1, end)。

创作类型:
原创

本文链接:小明用“分治算法”编写了一个函数。他的任务是计算1+2+3+......+100的和。 请选择下列哪

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

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

分享考题
share