递归函数来一维数组的求和
以下内容来自,《算法图解》
-
确定递归停止条件(基准条件):
-
确定递归条件:
- 整个递归过程
python实现
# 使用递归完成对数组的相加
def sum(l):
if l == [] or len(l) == 1: ## 先设置基准条件
return l[0]
else: ## 设置 递归条件
return l[0] + sum(l[1:]) ## l[1:] 减少数据尺度,不断往基准条件靠近
print(sum([1,2,3,4,5]))
## 答案:
def sum(l):
if l == []:
return 0
else:
return l[0] + sum(l[1:])
go实现
package main
import "fmt"
func sum(arr []int) int {
if len(arr) == 0 || len(arr) == 1 {
return arr[0]
} else {
return arr[0] + sum(arr[1:])
}
}
func main() {
arr := []int{1, 2, 3, 4, 5}
output := sum(arr)
fmt.Println(output)
}
// 根据答案完成改动
package main
import "fmt"
func sum(arr []int) int {
if len(arr) == 0 {
return 0
} else {
return arr[0] + sum(arr[1:])
}
}
func main() {
arr := []int{1, 2, 3, 4, 5}
output := sum(arr)
fmt.Println(output)
}