青蛙過河
阿新 • • 發佈:2019-01-12
Problem 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
Hint
Source
zlh
#include <stdio.h> #include <stdlib.h> #include <math.h> int f(int s,int y) { int re; if(s==0) { re=y+1; } else { re=2*f(s-1,y); } return re; } int main() { int s,y,re; while(~scanf("%d%d",&s,&y)) { re=f(s,y); printf("%d\n",re); } }