2014 蓝桥杯 预赛 c/c++ 本科B组 切面条

来源:互联网 发布:电脑怎么切换网络 编辑:程序博客网 时间:2024/05/17 00:18
切面条:
    一根高筋拉面,中间切一刀,可以得到2根面条。
    如果先对折1次,中间切一刀,可以得到3根面条。
    如果连续对折2次,中间切一刀,可以得到5根面条。
    那么,连续对折10次,中间切一刀,会得到多少面条呢?

分析:对折3次,可得9根面条。。

归纳得:对折i 次所得面条为对折i-1次所得面条+2^(i-1).所以采用递归来求解。

#include<stdio.h>#include<math.h>int MianTiao(int m,int n){if(m==1)        //递归终止条件{return 5;}else{return MianTiao(m-1,n-1)+pow(2,n-1);}}int main(){int i=10;int k=0;k=MianTiao(i-1,i); //第i次=第i-1次+2^(i-1)printf("%d",k);return 0;}



0 0