您的位置:首页 > 编程语言 > C语言/C++

2014 蓝桥杯 预赛 c/c++ 本科B组 第二题:切面条(5' )

2014-03-25 21:25 447 查看
第二题:切面条(5' )

    一根高筋拉面,中间切一刀,可以得到2根面条。

    如果先对折1次,中间切一刀,可以得到3根面条。

    如果连续对折2次,中间切一刀,可以得到5根面条。

    那么,连续对折10次,中间切一刀,会得到多少面条呢?

答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。

解题思路:一刀切下去有三部分,不管是对折的几次都是分三部分(如下图),那么假设第一部分为t1,第二部分是t2,第三部分是t3.

在此基础上如果折一次,那么t3 = t3' + t2' , t2 = t1' ,t1 = 2^(n-1),(n是当前是第几次折),t1的计算方法就是每次折都是讲横着的面条翻了一倍,然后切下来之

后,因为右边是连着的,所以值是2^(n-1)。 因此方法得证。

快速解题思路: 直接找规律。



#include <iostream>
#include <cmath>
using namespace std;

int main(){
int t1 = 1,t2 = 0,t3 = 1;
for(int i = 1; i <= 10; ++i){
t3 += t2;
t2 = t1;
t1 = pow(2,i-1);
}
cout<<t1+t2+t3<<endl;
return 0;
}


答案:1025 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐