用递归求数组1,2,3,4的和
时间: 2023-09-05 18:08:57 浏览: 44
可以用递归函数求解数组1,2,3,4的和,具体的代码如下所示:
```python
def sum_array(arr, n):
# 递归终止条件
if n == 0:
return 0
else:
# 递归调用自身,对 n-1 个元素求和,并加上第 n 个元素的值
return sum_array(arr, n-1) + arr[n-1]
# 测试
arr = [1, 2, 3, 4]
n = len(arr)
print(sum_array(arr, n)) # 输出结果为 10
```
在上面的代码中,`sum_array` 函数接收一个数组 `arr` 和数组的长度 `n` 作为参数,其中 `n` 表示数组中有多少个元素。如果 `n` 等于 0,表示数组中没有元素,直接返回 0。否则,递归调用 `sum_array` 函数求解前 `n-1` 个元素的和,并加上第 `n` 个元素的值,得到数组的总和。
对于数组 `[1, 2, 3, 4]`,它的长度为 4,因此调用 `sum_array(arr, n)` 函数可以得到数组的总和 10。
相关问题
用python递归求数组最大值
可以使用递归的方式来实现求数组的最大值。
首先,我们需要明确递归的终止条件,即当数组只有一个元素时,它的最大值就是它本身。
接着,我们可以将数组分为左右两个部分,递归求出左半部分和右半部分的最大值,然后比较它们的大小,返回较大的值作为整个数组的最大值。
以下是示例代码:
```python
def max_in_array(arr):
n = len(arr)
if n == 1:
return arr[0]
else:
mid = n // 2
left_max = max_in_array(arr[:mid])
right_max = max_in_array(arr[mid:])
return max(left_max, right_max)
```
在这个函数中,我们首先计算数组的长度,如果长度为1,那么直接返回数组唯一的元素。
否则,我们计算数组中间位置,将数组分为左右两半,分别递归求出左半部分和右半部分的最大值。
最后,我们将左半部分的最大值和右半部分的最大值进行比较,返回较大的值作为整个数组的最大值。
示例调用:
```python
arr = [1, 3, 5, 7, 2, 4, 6, 8]
print(max_in_array(arr)) # 输出 8
```
用递归算法求数组中的各整数和
可以使用如下的递归算法来求数组中的各整数和:
```
int sum(int arr[], int n) {
// Base case: 如果数组为空,返回 0
if (n == 0) {
return 0;
}
// Recursive case: 返回数组中前 n-1 个整数的和加上最后一个整数
return sum(arr, n-1) + arr[n-1];
}
```
这个递归算法的思路是将数组的求和问题转化为子问题:求前 n-1 个整数的和,然后加上第 n 个整数。当 n 等于 0 时,数组为空,此时返回 0。这就是所谓的“基本情况”。当 n 大于 0 时,需要递归调用 sum 函数来解决规模更小的子问题,然后再将子问题的结果合并起来得到原问题的解。这就是所谓的“递归情况”。