说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)写一个递归函数,传入一个数字,计算小于这个数字(不包括 0 和负数)的整数中,所有偶数的和。
# 示例用法
print(sum_even_numbers(13)) # 输出 42 (2 + 4 + 6 + 8 + 10 + 12)
print(sum_even_numbers(10)) # 输出 20 (2 + 4 + 6 + 8)
print(sum_even_numbers(7)) # 输出 12 (2 + 4 + 6)
print(sum_even_numbers(1)) # 输出 0 (没有符合条件的偶数)
Python 代码如下:
def sum_even_numbers(num):
# 如果 num 小于等于 2,则没有符合条件的偶数
if num <= 2:
return 0
# 如果 num 是奇数,递减 1 使其变为前一个偶数
elif num % 2 != 0:
num -= 1
# 前一个偶数+前前一个偶数+再前的所有偶数
return num + (num - 2) + sum_even_numbers(num - 2)
else:
return (num - 2) + sum_even_numbers(num - 2)
# 示例用法
print(sum_even_numbers(13)) # 输出 42 (2 + 4 + 6 + 8 + 10 + 12)
print(sum_even_numbers(10)) # 输出 20 (2 + 4 + 6 + 8)
print(sum_even_numbers(7)) # 输出 12 (2 + 4 + 6)
print(sum_even_numbers(1)) # 输出 0 (没有符合条件的偶数)
通过这种递归方式,我们能够计算小于 num 的所有正偶数的和。
查看相关链接中的知识。
(完)
更新时间:2024-11-23 11:33:20 标签:python 习题 递归函数 偶数