问题:有一堆桃子,猴子第一天吃了其中的一半,并在多吃了一个。以后猴子每天都吃其中的一半,然后再多吃一个,当到第10天时,发现只有一个桃子了。问题:最初共有多少个桃子。
思路分析:
- 第10天只有一个桃子;
- 第9天的桃子数 = (第10天桃子数+1)*;
- 规律:第n天的桃子数:peach (n) = (peach(n+1) + 1) * 2
代码如下:
package main
import "fmt"
func peach(n int) int{
if n>10 || n<1 {
fmt.Println("输入的天数不对")
return 0
} else if n==10 {
return 1
} else {
return (peach(n+1)+1)*2
}
}
func main() {
fmt.Print("请输入天数:")
var n int
fmt.Scan(&n)
fmt.Printf("第%v天桃子的数量是:%v",n,peach(n))
}
执行结果如下图所示: