【问题标题】:I want to compute the sum of first N even numbers based on the user input N using recursive function我想使用递归函数根据用户输入 N 计算前 N 个偶数的总和
【发布时间】: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)

【问题讨论】:

  • 我在这里看不到任何递归(尽管在任何情况下递归都是一个糟糕的解决方案)。你能澄清一下吗?谢谢。

标签: python function loops


【解决方案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)) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2022-01-15
    • 2014-06-18
    • 2019-11-21
    • 2021-07-23
    • 2015-08-04
    • 2013-11-26
    相关资源
    最近更新 更多