📅  最后修改于: 2023-12-03 14:50:47.338000             🧑  作者: Mango
这是一道关于递归的编程题。
给定一个整数 $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))