如何用Python编写规避sum等受限函数的整数求和代码?
解决方法
你原来的代码里,最后调用recursive_s(numbers)是多余的(因为numbers已经是整数列表了),而且用了被禁止的sum()函数。我们可以用递归求和的方式替代sum(),完全符合要求:
完整代码
def str_to_int_list(str_list): if not str_list: return [] return [int(str_list[0])] + str_to_int_list(str_list[1:]) def recursive_sum(num_list): # 递归求和:空列表的和为0,非空则取第一个元素加剩余列表的和 if not num_list: return 0 return num_list[0] + recursive_sum(num_list[1:]) if __name__ == "__main__": input_str = input().strip() # 分割输入字符串为单个数字字符串的列表 num_strings = input_str.split() # 转成整数列表 numbers = str_to_int_list(num_strings) # 递归计算总和并输出 print(recursive_sum(numbers))
代码说明
str_to_int_list:用递归把输入的字符串列表转成整数列表,和你原来的recursive_s逻辑一致,只是名字更清晰。recursive_sum:核心的求和函数,完全依赖递归实现:- 当输入的整数列表为空时,返回0(递归终止条件)
- 非空时,返回列表第一个元素加上剩余列表的递归求和结果,逐步累加所有元素。
- 整个过程没有使用任何被禁止的函数或循环,完全符合题目要求。
内容的提问来源于stack exchange,提问作者Malika
相关产品推荐
相关产品推荐

