遞推遞迴練習 N 青蛙過河

2021-07-29 14:04:45 字數 1037 閱讀 9122

description

1)一條小溪尺寸不大,青蛙可以從左岸跳到右岸,在左岸有一石柱l,石柱l面積只容得下乙隻青蛙落腳,同樣右岸也有一石柱r,石柱r面積也只容得下乙隻青蛙落腳。 2)有一隊青蛙從小到大編號:1,2,…,n。 3)初始時:青蛙只能趴在左岸的石頭 l 上,按編號乙個落乙個,小的落在大的上面-----不允許大的在小的上面。 4)在小溪中有s個石柱、有y片荷葉。 5)規定:溪中的每個石柱上如果有多隻青蛙也是大在下、小在上,每個荷葉只允許乙隻青蛙落腳。 6)對於右岸的石柱r,與左岸的石柱l一樣允許多個青蛙落腳,但須乙個落乙個,小的在上,大的在下。 7)當青蛙從左岸的l上跳走後就不允許再跳回來;同樣,從左岸l上跳至右岸r,或從溪中荷葉、溪中石柱跳至右岸r上的青蛙也不允許再離開。 問題:在已知小溪中有 s 根石柱和 y 片荷葉的情況下,最多能跳過多少只青蛙?

input

輸入資料有多組,每組佔一行,每行包含2個數s(s是小溪中的石柱數目)、y(y是小溪中的荷葉數目)。(0 <= s <= 10,0 <= y <= 10),輸入檔案直到eof為止!

output

對每組輸入,輸出有一行,輸出最多能跳過的青蛙數目。

sample input

0 2

1 2

sample output

3

6

這道題還是一道遞推遞迴問題,還是要找出f(s)與f(s-1)的關係,f(s)可以理解為前面f(s-1)只的青蛙先調到第s跟柱子上,然後就有f(s-1)只青蛙可以借助s-1跟柱子跟荷葉跳到右岸,然後第s跟柱子上的青蛙再借助s-1跟柱子跟荷葉跳到右岸,所以f(s)=2*f(n-1),起始條件為f(0)=y+1。

源**如下:

#include

using

namespace std;

intmain

()}

遞推遞迴練習N 青蛙過河

description 1 一條小溪尺寸不大,青蛙可以從左岸跳到右岸,在左岸有一石柱l,石柱l面積只容得下乙隻青蛙落腳,同樣右岸也有一石柱r,石柱r面積也只容得下乙隻青蛙落腳。2 有一隊青蛙從小到大編號 1,2,n。3 初始時 青蛙只能趴在左岸的石頭 l 上,按編號乙個落乙個,小的落在大的上面 不允...

遞推遞迴練習N青蛙過河

description 1 一條小溪尺寸不大,青蛙可以從左岸跳到右岸,在左岸有一石柱l,石柱l面積只容得下乙隻青蛙落腳,同樣右岸也有一石柱r,石柱r面積也只容得下乙隻青蛙落腳。2 有一隊青蛙從小到大編號 1,2,n。3 初始時 青蛙只能趴在左岸的石頭 l 上,按編號乙個落乙個,小的落在大的上面 不允...

N 青蛙過河

description 1 一條小溪尺寸不大,青蛙可以從左岸跳到右岸,在左岸有一石柱l,石柱l面積只容得下乙隻青蛙落腳,同樣右岸也有一石柱r,石柱r面積也只容得下乙隻青蛙落腳。2 有一隊青蛙從小到大編號 1,2,n。3 初始時 青蛙只能趴在左岸的石頭 l 上,按編號乙個落乙個,小的落在大的上面 不允...