我想使用递归函数根据用户输入 N 计算前 N 个偶数的总和
Posted
技术标签:
【中文标题】我想使用递归函数根据用户输入 N 计算前 N 个偶数的总和【英文标题】:I want to compute the sum of first N even numbers based on the user input N using recursive function 【发布时间】:2022-01-10 09:20:46 【问题描述】:我想根据用户输入 N 使用递归函数计算前 N 个偶数的总和。
例如:
样本输入 N:5
样本输出:2 + 4 + 6 + 8 + 10 = 30
我以 2 种方式编写代码,但它们都给出了错误的输出。我在循环中的函数部分排序号中做错了。所以我需要一些帮助!
n = int(input("Enter a nmuber: "))
for i in range(1,n+1):
for d in range(0,i+1,2):
print(d)
n = int(input("Enter a number: "))
def get_even(n):
for i in range(1,n+1,2):
d += i
print(d)
【问题讨论】:
我在这里看不到任何递归(尽管在任何情况下递归都是一个糟糕的解决方案)。你能澄清一下吗?谢谢。 【参考方案1】:您可以使用以下内容。
代码
def sum_even(n):
# Base case
if n <= 1:
return 0
if n % 2:
# odd n
return sum_even(n - 1) # sum from next smaller even
else:
# even n
return n + sum_even(n - 2) # current plus sum from next smaller even
# Usage
n = int(input('Enter a nmuber: '))
print(sum_even(n))
【讨论】:
以上是关于我想使用递归函数根据用户输入 N 计算前 N 个偶数的总和的主要内容,如果未能解决你的问题,请参考以下文章