您的位置:首页 > 汽车 > 新车 > 牛客JS题(二十)判断斐波那契数组

牛客JS题(二十)判断斐波那契数组

2024/11/15 23:49:50 来源:https://blog.csdn.net/m0_73756108/article/details/140886321  浏览:    关键词:牛客JS题(二十)判断斐波那契数组

注释很详细,直接上代码

涉及知识点:

  1. 循环判断斐波那契数列组
  2. 递归判断斐波那契数列组
  3. 合法性判断

题干:

在这里插入图片描述

我的答案

<!DOCTYPE html>
<html><head><meta charset="utf-8" /></head><body><script type="text/javascript">/*** 对于这题我们采用了两种方法,* 一种是使用循环,另一种是使用递归* 循环的比较好理解,这里我们只讲讲递归的思路* 因为递归到末尾需要用到前两项的值,这里我们就将它写进递归,不单独判断这个条件了* 我们这个递归是用于判断是否是斐波那契数列,* 递归终止条件是下标为1,因为前两项的判断方法和后面的项不一样* 对于index=1自然就是返回前两项是否为0、1,* 其他情况需要注意,它取决于两个条件,一个是上一个函数的返回值,另一个是当前项是否符合斐波那契数列* 并且是只要有false则为false,所以这里我们需要使用&&*/const _isFibonacci = (array) => {// 补全代码try {if (array.length < 3) {throw new Error("数组长度不能小于3");}if (array[0] != 0 || array[1] != 1) {throw new Error("数组前两个元素不是0和1");}for (let i = 2; i < array.length; i++) {if (array[i] != array[i - 1] + array[i - 2]) return false;}return true;} catch (e) {console.log(e);return false;}};let array = [0, 1, 1];console.log(_isFibonacci(array));//使用递归实现斐波那契数列的判断const _isFibonacci1 = (array) => {try {if (array.length < 3) {throw new Error("数组长度不能小于3");}return recursivelyJudgeFibonacciSequence(array, array.length - 1);} catch (err) {console.log(err);return false;}};const recursivelyJudgeFibonacciSequence = (array, index) => {if (index == 1) return array[0] == 0 && array[1] == 1;elserecursivelyJudgeFibonacciSequence(array, index - 1) &&array[index] == array[index - 1] + array[index - 2];};console.log(_isFibonacci1([0, 1, 1]));</script></body>
</html>

博客更新不是很及时,需要看后面内容的可以看看我的gitee仓库

牛客JS题Gitee仓库

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com