CSDN蓝桥杯算法题——题解Java版本——切面条
【摘要】 编辑目录题目:切面条答案目标:推导过程:解析过程:对照Java编码1:对照Java编码2:总结:题目:切面条一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?答案目标:编辑推导过程:这个题应该找有几个节点,这个节点是干扰切断的关键。这种题一般都...
目录
题目:切面条
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?
答案目标:
推导过程:
这个题应该找有几个节点,这个节点是干扰切断的关键。
这种题一般都会涉及2的次幂。
0折的时候,有0的节点,一刀分为了2条
1折的时候,有1个节点,一刀分为了3条,假如没有那个节点,应该是4条,所以 4 - 1 = 3
2折的时候,是在1折的基础上,本身已经有1个节点,然后再加上2个,1 + 2 = 3个节点,一刀切开本身应该8条,所以8-3=5.
3折的时候,是在2折基础上,1 + 2 + 4 = 7个节点,一刀切开,本身应该16条,16-7=9条。
。。。
。。。
所以我们找出规律:n折的时候,节点数应该为 2的0次幂+......2的n-1次幂。也就是2的n次幂-1。所以10次的时候,有1024-1=1023个节点。
n折的时候本身应该有2的n+1次幂2048条。所以2048-1023=1025故而有:
折 条
0 2
1 3
2 5
推导可得:
解析过程:
将目标对折次数带入方程式可得:
n=10
count=1+
=1+1024=1025
对照Java编码1:
对照Java编码2:
如果使用纯暴力也是可以的,因为我们已经掌握了循环的规律。
总结:
本题目有很多种解法,无论是用手画,或者挨个计算,或者使用暴力循环,以及向我一样推导出对应的算法公式传递参数都可以。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)