斐波那契数列 JS

问题:
给出一个数字,找出它是斐波那契数列中的第几个数
斐波那契数列 [1, 1, 2, 3, 5, 8, 13, ...],后一个数字是前两个数字之和
输入的数字大于等于 2
如果输入数字不存于斐波那契数列中,返回 -1

function demo(num) {
  //初始数据
  const start = [1, 1]
  const res = DiGui(start, num)
  return res
}

function DiGui(start, num) {
  const end = start[0] + start[1]
  if (end === num) {
    //找到了,输出
    return end
  } else if (end > num) {
    //不存在
    return -1
  } else if (end < num) {
    //继续找
    return DiGui([start[1], end], num)
  }
}

console.log(demo(5))//5
console.log(demo(13))//13
console.log(demo(9))//-1

你可能感兴趣的:(JS遇到过得面试题,javascript,前端,开发语言)