Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ตรวจสอบเลขฟีโบนัชชี (Fibonacci Number) - JavaScript

ตรวจสอบว่าตัวเลขอยู่ในลำดับฟีโบนัชชีหรือไม่ โดยสร้างลำดับจนกว่าจะถึงหรือเกินตัวเลขเป้าหมาย

ตัวอย่างโค้ด

const isFib = query => {
  if (query === 0 || query === 1) return true;
  
  let prev = 1, curr = 2;
  while (curr <= query) {
    if (curr === query) return true;
    [prev, curr] = [curr, prev + curr];
  }
  return false;
};

console.log(isFib(89));

ผลลัพธ์

true

วิธีทางคณิตศาสตร์ (O(1) - เร็วที่สุด)

เลข n เป็น Fibonacci ก็ต่อเมื่อ 5n² + 4 หรือ 5n² - 4 เป็น Perfect Square

const isPerfectSquare = x => {
  const s = Math.sqrt(x);
  return s === Math.floor(s);
};

const isFib = n => 
  isPerfectSquare(5 * n * n + 4) || isPerfectSquare(5 * n * n - 4);

ไม่ต้องลูป ใช้สูตรทางคณิตศาสตร์ตรวจสอบได้ทันที