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

第二题:切面条(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 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值