来源:第五届蓝桥杯省赛C++B组
算法标签 递推
题目描述:
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?
答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。
题目答案:
1025
题目思路:
观察表述,所有x有对应y.
x y 0 2 1 3 2 5
不难理解,所有当前状态下的面条都更新为上一个的(N-1)*2+切割状态中不变的一个。
在这个过程中,未对折的f0不受影响。
则我们发现,所有当前状态都受到上一个状态决定,是递推,得到(f[i-1]-1)*2+1,拆开即为f[i]=f[i-1]*2-1;
题目代码: