经典算法题-----猴子吃桃的问题
生活随笔
收集整理的這篇文章主要介紹了
经典算法题-----猴子吃桃的问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文將為大家?guī)?lái)“猴子吃桃的問(wèn)題”算法的一個(gè)解法與詳細(xì)解釋,方法不唯一,本篇文章只列舉出一種方法,可以先練習(xí),練習(xí)之后查看代碼,這樣更加有助于提高。
文章目錄
- 一、題目
- 二、解題思路
- 三、代碼(含詳細(xì)注解)
- 四、規(guī)律推導(dǎo)
一、題目
題目描述: 猴子吃桃問(wèn)題。 猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè)。 第二天早上又將剩下的桃子吃掉一半,又多吃一個(gè)。 以后每天早上都吃了前一天剩下 的一半零一個(gè)。 到第N天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。 求第一天共摘多少桃子。輸入:N 輸出:桃子總數(shù)運(yùn)行結(jié)果: 樣例輸入:10 樣例輸出:1534先來(lái)看下運(yùn)行截圖:
二、解題思路
這道題給出了最后一天桃子的數(shù)量為1,那么我們可以采用逆推的思維進(jìn)行求解這道題,找出規(guī)律:
大致規(guī)律為:1 (1+1)*2=4 (4+1)*2=8 ·· ·· ··
三、代碼(含詳細(xì)注解)
public static void main(String[] args) {Scanner input = new Scanner(System.in);int N = input.nextInt();int total = 1 ;for(int i=0 ; i<N-1 ;i++){//如果只為一天,根據(jù)題目描述,則為1if(N==1){System.out.println(total);}else{//否則,通過(guò)逆推可以求得//具體過(guò)程請(qǐng)參考下面講解total=2*(total+1);}}System.out.println(total);}四、規(guī)律推導(dǎo)
希望本篇文章可以給您帶來(lái)收獲,有興趣的小伙伴點(diǎn)個(gè)關(guān)注一起學(xué)習(xí)吧
總結(jié)
以上是生活随笔為你收集整理的经典算法题-----猴子吃桃的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: maya2011安装方法图文详细教程及U
- 下一篇: 小葵花妈妈课堂开课了:《Runnable