用递归求数组1,2,3,4的和
时间: 2023-09-04 10:14:58 浏览: 35
可以使用递归函数来实现这个功能,具体实现如下:
```python
def array_sum(arr, n):
# 当数组已经递归到最后一个元素时,返回该元素的值
if n == 1:
return arr[0]
# 否则,递归调用函数,将数组缩小一位,并将结果与当前元素相加
else:
return array_sum(arr, n-1) + arr[n-1]
arr = [1,2,3,4]
n = len(arr)
print("数组和为:", array_sum(arr, n))
```
运行结果为:
```
数组和为: 10
```
解释一下上述代码的执行过程:
- 当传入数组 `[1,2,3,4]` 和数组长度 `4` 时,首先进入 `array_sum` 函数。
- 因为数组长度不为1,所以进入 else 分支,调用 `array_sum(arr, 3)`,即将数组缩小一位,求剩下元素的和。
- 再次进入 `array_sum` 函数,因为数组长度不为1,再次进入 else 分支,调用 `array_sum(arr, 2)`,即将数组缩小一位,求剩下元素的和。
- 再次进入 `array_sum` 函数,因为数组长度不为1,再次进入 else 分支,调用 `array_sum(arr, 1)`,即将数组缩小一位,求剩下元素的和。
- 因为此时数组长度为1,直接返回数组第一个元素 `1`。
- 回到上一个调用 `array_sum(arr, 2)` 的函数,此时将 `1` 与 `2` 相加,返回结果 `3`。
- 回到上一个调用 `array_sum(arr, 3)` 的函数,此时将 `3` 与 `3` 相加,返回结果 `6`。
- 回到最初的调用 `array_sum(arr, 4)` 的函数,此时将 `6` 与 `4` 相加,返回最终结果 `10`。