我会以图片的形式简单形容一下思路,能够更好的理解。

可以很明显的推导出,整个递归的边界就是tiao(0,y) = y+1 ** ,而左右两岸之间没多一根柱子的话就会使他的数量翻一倍,tiao(x,y) = tiao(x-1,y)*2** 这个公式是推导出来的另一种形式。

#include <bits/stdc++.h>
using namespace std;
int tiao(int x,int y)
{
if(x == 0) return y+1;
else return 2*tiao(x-1,y);
}
int main()
{
int t;
while(scanf("%d",&t)!=EOF)
{
for(int i=1;i<=t;i++)
{
int x,y;
scanf("%d%d",&x,&y);
cout << tiao(x,y) <<endl;
}
}
return 0;
}

反思

这个题目整体还是以道很简单的递归的题目,同时也是看自己的数学上的推导能力,接下来还是要自己动手多推导,同时也要提高自己的代码实现能力,又很多的题目都是有想法的但是最后还是没有足够的代码基础进行实现。