首页> 基础笔记 >GoLang基础学习 >经典案例 经典案例

Go递归经典案例:猴子吃桃

作者:小萝卜 2023-04-03 浏览 241

简介有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第十天时,想再吃时(还没吃),发现只有 1个桃子了。问题:最初共多少个桃子?

package main

import "fmt"

//有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后
//再多吃一个。当到第十天时,想再吃时(还没吃),发现只有 1个桃子了。问题:最初共多少个桃子?
/*
	思路分析:
	1)第  10天只有一个桃子
	2)第  9天有几个桃子     =   (第 10天桃子数量   + 1) * 2
	3)规律:第    n天的桃子数据    peach(n) = (peach(n+1) + 1) * 2
*/
func bb(n int) int {
	//n是有范围的1-10之间
	if n < 1 || n > 10 {
		fmt.Println("输入的时间不对")
		return 0
	}

	if n == 10 {
		return 1
	} else {
		return (bb(n+1) + 1) * 2
	}
}

func main() {

	fmt.Println("最初的桃子数量", bb(1)) //1534
}

很赞哦! (0)

文章评论

    高端网站建设