Java實(shí)現(xiàn)的猴子吃桃問題算法示例
本文實(shí)例講述了Java實(shí)現(xiàn)的猴子吃桃問題算法。分享給大家供大家參考,具體如下:
猴子吃桃問題
概述:猴子第一天摘下N個(gè)桃子,當(dāng)時(shí)就吃了一半,還不過癮,就又吃了一個(gè);第二天又將剩下的桃子吃掉了一半,又多吃了一個(gè);以后每天都吃前一天身下的一半零一個(gè),到第n天再想吃的時(shí)候就只剩下一個(gè)桃子了,求第一天共摘了多少個(gè)桃子?
思路及演算步驟(求出共摘多少桃子的函數(shù)表達(dá)式):
離現(xiàn)在的天數(shù)作為變量
f(1) = 1 (剩下桃子的數(shù)目)
f(2) = f(3) - (吃掉了一些) = f(3) -(f(3)/2+1) = f(3)/2-1
....
f(n) = f(n+1)/2-1(遞推公式)
所以可以得到遞推公式:
f(n-1) = f(n)/2-1 => 2f(n-1) = f(n) - 2 => f(n)=2f(n-1) +2 (這是我們想要的公式)
然后可以求出離現(xiàn)在任何天數(shù)時(shí),猴子共摘下的桃子!
例如f(10)意思就是離現(xiàn)在10天的時(shí)候(10天以前猴子擁有的桃子的個(gè)數(shù))!
下面給出具體的代碼:
package javastudy; import java.util.Scanner; public abstract class Testit2 { // 猴子吃桃問題 public static void main(String[] args) { Scanner in = new Scanner(System.in); int n; n = in.nextInt(); System.out.println(f(n)); in.close(); } static int f(int n) { if (n == 1) //離現(xiàn)在只有一天的時(shí)候那就只剩下一個(gè)! return 1; return 2 * f(n - 1) + 2; } }
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
- Java矩陣連乘問題(動(dòng)態(tài)規(guī)劃)算法實(shí)例分析
- Java基于動(dòng)態(tài)規(guī)劃法實(shí)現(xiàn)求最長公共子序列及最長公共子字符串示例
- Java動(dòng)態(tài)規(guī)劃之硬幣找零問題實(shí)現(xiàn)代碼
- Java動(dòng)態(tài)規(guī)劃之編輯距離問題示例代碼
- Java面試之動(dòng)態(tài)規(guī)劃與組合數(shù)
- Java算法之最長公共子序列問題(LCS)實(shí)例分析
- 淺談java實(shí)現(xiàn)背包算法(0-1背包問題)
- Java基于分治算法實(shí)現(xiàn)的棋盤覆蓋問題示例
- Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:漢諾塔問題 Hanoi
- java動(dòng)態(tài)規(guī)劃算法——硬幣找零問題實(shí)例分析
相關(guān)文章
SpringBoot的父級依賴:spring-boot-starter-parent詳解
SpringBoot通過父級依賴spring-boot-starter-parent實(shí)現(xiàn)項(xiàng)目快速構(gòu)建,它依賴于spring-boot-dependencies來統(tǒng)一管理項(xiàng)目中的依賴版本,省去了手動(dòng)指定版本信息的麻煩,這種機(jī)制不僅規(guī)定了默認(rèn)的Java版本和編碼格式2024-09-09idea 在springboot中使用lombok插件的方法
這篇文章主要介紹了idea 在springboot中使用lombok的相關(guān)資料,通過代碼給大家介紹在pom.xml中引入依賴的方法,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:冒泡排序 Bubble Sort
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:冒泡排序 Bubble Sort,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-06-06java正則表達(dá)式匹配規(guī)則超詳細(xì)總結(jié)
正則表達(dá)式并不僅限于某一種語言,但是在每種語言中有細(xì)微的差別,下面這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式匹配規(guī)則的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10SpringBoot導(dǎo)入mail依賴報(bào)錯(cuò)問題解決
這篇文章主要介紹了SpringBoot導(dǎo)入mail依賴報(bào)錯(cuò)問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10