1. 程式人生 > 其它 >javascript解決猴子偷桃問題

javascript解決猴子偷桃問題

技術標籤:遞迴javascript

猴子偷桃問題


有一堆桃子不知數目。猴子第一天吃掉一半,覺得不過癮,又多吃一隻,第二天照此辦法,吃掉剩下桃子的一半另加一隻,天天如此,到第num(num <= 10)天早上,猴子發現只剩一隻桃子了,問這堆桃子原來有多少隻?

乍一看,這是一道數學題,要想在程式設計中解決,先對題目進行分析:
在這裡插入圖片描述
因為我們已知條件是最後一天還剩一隻桃子,故對其進行反推,得到如上圖所示的規律:
在這裡插入圖片描述
從上往下看:
前一天的桃子數量 = 後一天的桃子數量 * 2 + 2

故在程式設計中滿足遞迴:

遞迴寫法:
1. 首先去找臨界值,即無需計算,獲得的值(n=1時是1,n=2時是4)

2. 找這一次和上一次的關係 (peach_Num(n) = peach_Num(n-1)*2 + 2; )
3. 假設當前函式已經可以使用,呼叫自身計算上一次

//設n為還剩多少天?
            function peach_Num(n) {  
                if(n == 1){
                    return 1;
                }
                if(n == 2){
                    return 4;
                }
                return
peach_Num(n-1)*2+2; }

問題解決!