কম্পিউটার টিউটোরিয়াল

ফিবোনাচ্চি সিরিজে সংখ্যা আছে কিনা চেক - JavaScript

একটি সংখ্যা ফিবোনাচ্চি সিরিজে আছে কিনা তা চেক করা।

ফিবোনাচ্চি সিরিজ

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

গাণিতিক বৈশিষ্ট্য (দ্রুত চেক)

একটি সংখ্যা n ফিবোনাচ্চি হলে এবং কেবলই 5n²+4 বা 5n²-4 পারফেক্ট স্কয়ার হবে।

সমাধান ১: লুপ (সহজ)

const isFibonacci = (num) => {
  if (num < 0) return false;
  if (num === 0 || num === 1) return true;
  
  let a = 0, b = 1;
  while (b < num) {
    [a, b] = [b, a + b];
  }
  return b === num;
};

// টেস্ট
console.log(isFibonacci(89));   // true
console.log(isFibonacci(90));   // false
console.log(isFibonacci(144));  // true

সমাধান ২: গাণিতিক (O(1))

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

const isFibonacciMath = (num) => {
  if (num < 0) return false;
  const n2 = num * num;
  return isPerfectSquare(5 * n2 + 4) || isPerfectSquare(5 * n2 - 4);
};

// টেস্ট বড় সংখ্যা
console.log(isFibonacciMath(102334155)); // true (40th Fibonacci)
console.log(isFibonacciMath(102334156)); // false

তুলনা

পদ্ধতি সময় জটিলতা সীমাবদ্ধতা
লুপ O(n) - n = ফিব নম্বর বড় সংখ্যার জন্য ধীর
গাণিতিক O(1) ফ্লোটিং পয়েন্ট প্রিসিশন ইশ্যু বড় সংখ্যায়

উৎপাদন

true
  1. JavaScript-এ ইনপুট সংখ্যা নাকি অক্ষর চেক করা (isNaN)

  2. PHP প্রোগ্রাম: একটি সংখ্যা অনন্ত সিরিজে আছে কিনা চেক করা

  3. C#-এ সংখ্যা প্রাইম কিনা চেক করা

  4. পাইথনে আকিলিস নাম্বার চেক করুন