1)一條小溪尺寸不大,青蛙可以從左岸跳到右岸,在左岸有一石柱L,石柱L面積只容得下一只青蛙落腳,同樣右岸也有一石柱R,石柱R面積也只容得下一只青蛙落腳。
2)有一隊青蛙從小到大編號:1,2,…,n。
3)初始時:青蛙只能趴在左岸的石頭 L 上,按編號一個落一個,小的落在大的上面---不允許大的在小的上面。
4)在小溪中有S個石柱、有y片荷葉。
5)規(guī)定:溪中的每個石柱上如果有多只青蛙也是大在下、小在上,每個荷葉只允許一只青蛙落腳。
6)對于右岸的石柱R,與左岸的石柱L一樣允許多個青蛙落腳,但須一個落一個,小的在上,大的在下。
7)當青蛙從左岸的L上跳走后就不允許再跳回來;同樣,從左岸L上跳至右岸R,或從溪中荷葉、溪中石柱跳至右岸R上的青蛙也不允許再離開。
問題:在已知小溪中有 s 根石柱和 y 片荷葉的情況下,最多能跳過多少只青蛙?
using namespace std;
int cross_river(int S, int y)
{
if(0 == S)
return y + 1;
else
return 2 * cross_river(S-1, y);
}
int main()
{
int S, y;
cout << "Please input the number of 石柱 and 荷葉 leaves:" << endl;
cin >> S >> y;
cout << "Number of frogs: " << cross_river(S, y) << endl;
system("pause");
return 0;
}
我找到的答案都如上所示,是個遞歸問題??墒钱斒鶖?shù)量是3或3以上是,不是變成漢諾塔了嗎,不是可以跳無數(shù)只到對岸嗎??
0片荷葉,3根石柱不是不止8只嗎??我理解問題哪里理解錯了嗎》
0 荷葉,n 柱子這么想,假設河中有 n 個柱子:
這個過程似乎和漢諾塔很像,但是不是漢諾塔。
最后在這個基礎之上來考慮荷葉不為 0 的情況,由于荷葉上只能跳 1 只青蛙,相當于只是將問題的規(guī)模放大了,所以最后答案是荷葉數(shù)量 + 1(直接跳到 R 柱的那個青蛙) 之后按河中柱子的個數(shù)依次乘以 2。
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構(gòu),發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。