LeetCodeClassification---- No.1 分治--使用递归完成对一维数组的求和--递归法完成sum函数

递归函数来一维数组的求和

以下内容来自,《算法图解》

  1. 确定递归停止条件(基准条件):
    在这里插入图片描述

  2. 确定递归条件:

在这里插入图片描述

  1. 整个递归过程
    在这里插入图片描述

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)
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值