📌  相关文章
📜  国际空间研究组织 | ISRO CS 2015 |问题 41(1)

📅  最后修改于: 2023-12-03 14:50:47.338000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2015 |问题 41

这是一道关于递归的编程题。

题目描述

给定一个整数 $n$,编写一个递归函数来计算前 $n$ 个自然数的和。

输入

一行,为一个整数 $n(1 \leq n \leq 100)$。

输出

一个整数,为前 $n$ 个自然数的和。

样例

输入:

5

输出:

15
解题思路

这道题目可以使用递归的方式求解。因为前 $n$ 个自然数的和等于 $n$ 加上前 $n-1$ 个自然数的和。

$$sum(n) = n + sum(n-1)$$

因此,我们可以设计递归函数 sum(n),它的返回值是前 $n$ 个自然数的和。

当 $n=1$ 的时候,递归终止,返回 $1$。

当 $n>1$ 的时候,递归调用 sum(n-1),然后将 $n$ 加上 sum(n-1) 的返回值,作为 sum(n) 的返回值。

参考代码
def sum(n):
    if n == 1:
        return 1
    else:
        return n + sum(n-1)

n = int(input())
print(sum(n))
输入一个整数 n(1≤n≤100),然后调用递归函数 sum(n),计算前 n 个自然数的和并输出。

### 输入格式
一个整数 n。

### 输出格式
一个整数,即前 n 个自然数的和。

### 输入样例
5

### 输出样例
15

### 参考代码

```python
def sum(n):
    if n == 1:
        return 1
    else:
        return n + sum(n-1)

n = int(input())
print(sum(n))