C++實(shí)現(xiàn)猴子吃桃的示例代碼
題目詳情
有一天,某只猴子摘了一些桃子,當(dāng)時(shí)吃了一半,又不過(guò)癮,于是就多吃了一個(gè)。以后每天如此,到第n天想吃時(shí),發(fā)現(xiàn)就只剩下一個(gè)桃子。輸入n,表示到第n天剩下1個(gè)桃子,請(qǐng)計(jì)算第一天猴子摘的桃子數(shù)。程序運(yùn)行結(jié)果如下:
10
1534
要求
時(shí)間限制:2000ms
內(nèi)存限制:32000kb
輸入格式:
輸入一個(gè)整數(shù)n,n>0,表示到第n天剩下1個(gè)桃子。
輸出格式:
一個(gè)整數(shù),表示第1天摘的桃子數(shù)。
輸入樣例:
10
輸出樣例:
1534
個(gè)人思路
根據(jù)題意,設(shè)想第0天是第一天剛摘桃子沒(méi)吃的時(shí)候。
其實(shí)第n天發(fā)現(xiàn)想吃的時(shí)候只有一個(gè)桃子的時(shí)候
其實(shí)是第(n-1)天吃完一半再減一個(gè)桃子,也就是就剩最后一個(gè)桃子了。
對(duì)于夾在中間的天數(shù)有這樣規(guī)律的遞推
an+1 = an/2 - 1
反過(guò)來(lái)也就是an = 2*an+1 + 2,
這樣用遞歸也就可以
從第(n-1)天倒推回第0天(第一天剛摘桃子沒(méi)吃的時(shí)候)的桃子總數(shù)。
天數(shù) | 總數(shù) |
---|---|
0 | sum |
1 | sum/2 + 1 |
2 | (sum/2-1)/2 -1 |
3 | ((sum/2-1)/2 -1)/2 - 1 |
… | … |
下面代碼
#include <iostream> using namespace std; int main() { int Geshu(int day, int n); int n; cin>>n; cout<<Geshu(1,n-1)<<endl; //其實(shí)第n天發(fā)現(xiàn)想吃的時(shí)候只有一個(gè)桃子的時(shí)候 return 0; //也就是第(n-1)天吃完后就剩最后一個(gè)桃子了 } int Geshu(int sum, int day) { if(day==0) //設(shè)想第0天是第一天剛摘桃子沒(méi)吃的時(shí)候 return sum; return Geshu(2*sum+2,day-1); }
到此這篇關(guān)于C++實(shí)現(xiàn)猴子吃桃的示例代碼的文章就介紹到這了,更多相關(guān)C++ 猴子吃桃內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++服務(wù)器和客戶端交互的項(xiàng)目實(shí)踐
本文主要介紹了C++服務(wù)器和客戶端交互的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07c語(yǔ)言實(shí)現(xiàn)輸入一組數(shù)自動(dòng)從大到小排列的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇c語(yǔ)言實(shí)現(xiàn)輸入一組數(shù)自動(dòng)從大到小排列的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09Opencv基于CamShift算法實(shí)現(xiàn)目標(biāo)跟蹤
這篇文章主要為大家詳細(xì)介紹了Opencv基于CamShift算法實(shí)現(xiàn)目標(biāo)跟蹤,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單通訊錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單通訊錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07C語(yǔ)言數(shù)組應(yīng)用實(shí)現(xiàn)三子棋游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言數(shù)組應(yīng)用實(shí)現(xiàn)三子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06C++基于Boost庫(kù)實(shí)現(xiàn)命令行解析
Boost庫(kù)中默認(rèn)自帶了一個(gè)功能強(qiáng)大的命令行參數(shù)解析器,以往我都是自己實(shí)現(xiàn)參數(shù)解析的,今天偶爾發(fā)現(xiàn)這個(gè)好東西,就來(lái)總結(jié)一下參數(shù)解析的基本用法,該庫(kù)需要引入program_options.hpp頭文件,即可使用了2021-06-06C語(yǔ)言?超詳細(xì)順序表的模擬實(shí)現(xiàn)實(shí)例建議收藏
程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示2022-03-03