Java實(shí)現(xiàn)的猴子吃桃問(wèn)題算法示例
本文實(shí)例講述了Java實(shí)現(xiàn)的猴子吃桃問(wèn)題算法。分享給大家供大家參考,具體如下:
猴子吃桃問(wèn)題
概述:猴子第一天摘下N個(gè)桃子,當(dāng)時(shí)就吃了一半,還不過(guò)癮,就又吃了一個(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 {
// 猴子吃桃問(wèn)題
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)容感興趣的讀者可查看本站專(zhuān)題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
- Java矩陣連乘問(wèn)題(動(dòng)態(tài)規(guī)劃)算法實(shí)例分析
- Java基于動(dòng)態(tài)規(guī)劃法實(shí)現(xiàn)求最長(zhǎng)公共子序列及最長(zhǎng)公共子字符串示例
- Java動(dòng)態(tài)規(guī)劃之硬幣找零問(wèn)題實(shí)現(xiàn)代碼
- Java動(dòng)態(tài)規(guī)劃之編輯距離問(wèn)題示例代碼
- Java面試之動(dòng)態(tài)規(guī)劃與組合數(shù)
- Java算法之最長(zhǎng)公共子序列問(wèn)題(LCS)實(shí)例分析
- 淺談java實(shí)現(xiàn)背包算法(0-1背包問(wèn)題)
- Java基于分治算法實(shí)現(xiàn)的棋盤(pán)覆蓋問(wèn)題示例
- Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:漢諾塔問(wèn)題 Hanoi
- java動(dòng)態(tài)規(guī)劃算法——硬幣找零問(wèn)題實(shí)例分析
相關(guān)文章
Java靜態(tài)代理和動(dòng)態(tài)代理詳解
這篇文章主要介紹了Java靜態(tài)代理和動(dòng)態(tài)代理,本文通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-11-11
Java中在控制臺(tái)讀取字符的實(shí)現(xiàn)示例
Scanner是Java中的一個(gè)類(lèi),可以用于讀取控制臺(tái)輸入,通過(guò)Scanner對(duì)象可以方便地從控制臺(tái)讀取數(shù)字或字符串,本文就來(lái)介紹一下Java中在控制臺(tái)讀取字符的實(shí)現(xiàn)示例,感興趣的可以了解一下2023-10-10
Java圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了Java圖書(shū)管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Spring Boot 與 Kotlin 上傳文件的示例代碼
這篇文章主要介紹了Spring Boot 與 Kotlin 上傳文件的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
tomcat報(bào)錯(cuò):Wrapper cannot find servlet class ...問(wèn)題解決
這篇文章主要介紹了tomcat報(bào)錯(cuò):Wrapper cannot find servlet class ...問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下2016-11-11

