蓝桥杯基础-【切面条】不用画图的解题思路

在这里插入图片描述

我们先来看【切面条】的题目:

一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。 
那么,连续对折10次,中间切一刀,会得到多少根面条呢?

解题思路:

当我们拿到一道算法题目的时候,首先对其进行数学分析。既然是算法题目,肯定在数学范畴内,而数学范畴内的事物都是有规律可循的。而你,只需要仔细审题,让规律出现在眼前。

题目中所求为【连续对折10次,中间切一刀,会得到多少根面条?】,开始进行数学分析:求的是对折次数与面条根数之间的关系,因为切刀数为常数,总是为1。然后列队:

  1. 对折1次,得到3根面条;
  2. 对折2次,得到5根面条;
  3. 对折10次,得到?根面条;

规律找到了,每对折n次,得到面条的数目为 2n+1 ,所以对折10次,得到的结果为 2x10+1=21

你高兴的拿着解出的题目去讨老师欢心,然后老师一个 DBD 就对你幼小的心灵造成了深深的伤害,但你很坚强。这时候你又去仔细审了一下题目,还是不明所以。最终,你还是去百度搜索了这篇博文 蓝桥杯基础-【切面条】的解题思路,图都不用画

正确的解题思路:

当你看到这种题目时,一定要仔细审题,不要被表象所迷惑,求的是对折10次之后的结果;但是对折0次也是对折,也在规律之内。所以从新列队:

  1. 对折0次,得到2根面条;
  2. 对折1次,得到3根面条;
  3. 对折2次,得到5根面条;
  4. 对折10次,得到?根面条;

这时候你发现前面所寻到的规律不适用了,因为对折0次时,2n+1求出的值为1,与题目【对折0次,中间切一刀,可以得到2根面条】的结果不相等。这时,你恍然大悟,一拍脑门,大喊一声:mlgbzd,原来规律是幂次方

当有3项结果被确定时,基本是寻到了规律。

  1. 对折0次,得到 2º+1=2;
  2. 对折1次,得到 2¹+1=3;
  3. 对折2次,得到 2²+1=5;
  4. 对折10次,得到 2¹º+1 = 1025;
// n为对折次数
function getNoodlesSplit(n){
	return 2**n + 1;
}
let result = getNoodlesSplit(10);
console.log(result); // 1025
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值