蓝桥杯2014年C\C++A组-切面条
来源:互联网 发布:软件安全评估方法 编辑:程序博客网 时间:2024/06/05 15:00
一根面条,从中间切一刀,可以得到2根,若先对折一下再切,可以得到3根,若对折2次再切,可以得到5根面条,现在问若对折10次后再切,可以得到几根面条?
//这个我直接当场折叠了下,然后估算pow(2,10) + 1 与前几次吻合就直接开始写答案了
解题思路
切面条时, 切开的面条只会有2种情况:1是成为独立的面条,2是会和其它面条相连,那么,现在把和其它面条的称之为一个'结',当不计算这些'结'时,折了几次之后切完面条应该为2^(n+1)根:
1
2
3
4
5
6
7
/*
折N次后切 面条根数
0 2
1 4
2 8
3 16
*/
下来,再计算'结'的个数,由于一个'结'存在之后就不会消除,所以下一状态'结'数量就是当前结数量 + 对折后创造的'结'数量.而对折后创造的'结'数量就是当前面条的根数:
1
2
3
4
5
6
7
8
/*
对折次数 '结'数量
0 0
1 0 + 1
2 1 + 2
3 3 + 4
4 7 + 8
*/
最后,由于1个结相连了两根面条,所以当折了N次后,面条根数就是总共面条数 - 结数量:
1
2
3
4
5
6
7
8
9
/*
对折次数 面条数 结数 最终数量
0 2 0 + 0 2 - (0 + 0) = 2
1 4 0 + 1 4 - (0 + 1) = 3
2 8 1 + 2 8 - (1 + 2) = 5
3 16 3 + 4 16 - (3 + 4) = 9
...
10 2048 511 + 512 2048 - (511 + 512) = 1025
*/
答案就是1025根面条~
0 0
- 蓝桥杯2014年C\C++A组-切面条
- 2014年预赛 C/C++本科A组 第二题【切面条】
- 2014 蓝桥杯 预赛 c/c++ 本科B组 切面条
- 2014年蓝桥杯预选赛 C/C++ 本科A组试题--切面条
- 9C切面条
- 题解。2014、C/C++本科B组【切面条】
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第二题:切面条(5' )
- 2014蓝桥杯本科B组C/C++第二题【切面条】
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第二题:切面条(5' )
- 2014年第五届蓝桥杯c/c++本科B组切面条题目解读
- 山东省第五届蓝桥杯 ///标题:切面条//c/c++组
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 切面条(结果填空)
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 切面条(结果填空)
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛-切面条(结果填空)
- 第九周:C语言:切面条
- 第九周-OJ-C切面条
- C语言OJ项目参考(2506) 切面条
- 2014蓝桥杯B组初赛试题《切面条》
- VC中release与debug的区别
- 绑定中的数据校验Vaildation
- 蓝桥杯2014年C\C++A组-蚂蚁感冒
- ubuntu 命令行 apt-get 代理 上网
- Maven find Dependency
- 蓝桥杯2014年C\C++A组-切面条
- UML之用例图
- LINUX学习总结第6篇:搭建FTP服务器
- warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead
- short int,int,unsigned int,long,long int,float,double等32位,64位各占几个字节的问题
- CodeForces 222A
- linux下装mysql
- android中目录和文件讲解
- 负数取余运算