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

জাভাস্ক্রিপ্টে সংখ্যা আডিটিভ সিকোয়েন্স তৈরি করে কিনা তা নির্ধারণ


অ্যাডিটিভ নাম্বার

অ্যাডিটিভ নাম্বার হলো একটি সংখ্যা স্ট্রিং যেটির ডিজিটগুলো অ্যাডিটিভ সিকোয়েন্স তৈরি করতে পারে।

একটি বৈধ অ্যাডিটিভ সিকোয়েন্স-এ কমপক্ষে তিনটি সংখ্যা থাকতে হবে। প্রথম দুটি সংখ্যা ছাড়া, সিকোয়েন্স-র প্রতিটি পরবর্তী সংখ্যা অবশ্যই আগের দুটি সংখ্যার যোগফল হবে। শুধু ডিজিট '0'-'9' ধারণকারী একটি স্ট্রিং দেওয়া থাকলে, সেটি অ্যাডিটিভ নাম্বার কিনা তা নির্ধারণ করার ফাংশন লিখুন।

নোট − অ্যাডিটিভ সিকোয়েন্স-র সংখ্যাগুলোর লিডিং জিরো থাকতে পারবে না, তাই 1, 2, 03 বা 1, 02, 3 সিকোয়েন্সগুলো অবৈধ।

উদাহরণস্বরূপ −

স্ট্রিং "199100199" একটি অ্যাডিটিভ নাম্বার কারণ, অ্যাডিটিভ সিকোয়েন্স হলো − 1, 99, 100, 199 −

1 + 99 = 100, 99 + 100 = 199

উদাহরণ

এটির কোড হবে −

const str = "199100199";
const isAdditiveNumber = (numStr) => {
  if(numStr.length < 3) return false;
  let str = "";
  let seen = true;
  for(let i = numStr.length - 1; i > 1; i--){
    str = `${numStr[i]}${str}`;
    if(numStr[i] === "0") continue;
    let s = str;
    let s2 = numStr[i - 1]
    for(let j = i - 2; j >= 0; j--){
      if(`${s2}`.startsWith("0") && s2.length > 1){
        s2 = `${numStr[j]}${s2}` seen = false;
      } else if(parseInt(s) >= parseInt(s2)){
        let diff = s - s2;
        if(numStr.slice(0, j + 1).endsWith(diff)){
          s = s2;
          s2 = diff;
          let ind = Math.floor(Math.log10(diff));
          ind = ind < 0 ? 0 : ind
          j -= ind;
          seen = true;
        }else {
          s2 = `${numStr[j]}${s2}`
          seen = false;
        }
      }else{
        seen = false;
        break;
      }
    }
    if(seen) return seen;
  };
  return seen;
};
console.log(isAdditiveNumber(str));

আউটপুট

কনসোলে আউটপুট হবে −

true

  1. জাভাস্ক্রিপ্টে দুটি সংখ্যা তুলনা করার পদ্ধতি

  2. জাভাস্ক্রিপ্টে প্রাইম নম্বর জেনারেট করার পদ্ধতি

  3. জাভাস্ক্রিপ্টে ফিবোনাচি সিকোয়েন্স

  4. জাভাস্ক্রিপ্ট Numbers উদাহরণ