কম্পিউটার

জাভাস্ক্রিপ্টে নিকটতম গ্যাপফুল নম্বর খোঁজা


একটি সংখ্যা হল একটি ফাঁকা সংখ্যা যখন −

  • এতে অন্তত তিনটি সংখ্যা আছে, এবং
  • প্রথম এবং শেষ সংখ্যাকে একসাথে রেখে যে সংখ্যাটি গঠিত হয় তার দ্বারা এটি ঠিক বিভাজ্য হয়

যেমন −

1053 সংখ্যাটি একটি ফাঁকা সংখ্যা কারণ এতে 4টি সংখ্যা রয়েছে এবং এটি 13 দ্বারা বিভাজ্য। একইভাবে, 135 একটি ফাঁকা সংখ্যা কারণ এতে 3টি সংখ্যা রয়েছে এবং এটি 15 দ্বারা বিভাজ্য।

আমাদের কাজ হল এমন একটি প্রোগ্রাম লেখা যা আমরা ইনপুট হিসাবে যে নম্বরটি প্রদান করি তার নিকটতম ফাঁকা সংখ্যা ফেরত দেয়৷

উদাহরণস্বরূপ, সমস্ত 2-সংখ্যার সংখ্যার জন্য, এটি 100 হবে। 103-এর জন্য, এটি হবে 105।

আমরা সমস্যাটিকে দুটি ফাংশনে বিভক্ত করব -

isGapful() ফাংশন

এটি একটি সংখ্যা স্ট্রিং পায় এবং নীচের কোডের মত একটি বুলিয়ান প্রদান করে −

const isGapful = (numStr) => {
   const int = parseInt(numStr);
   return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0;
};

nearestGapful() ফাংশন

এটি আমাদের প্রধান ফাংশন যা একটি সংখ্যা গ্রহণ করে, নিকটতম ফাঁকা সংখ্যা প্রদান করে। এখানে কোড -

const nearestGapful = (num) => {
   if(typeof num !== 'number'){
      return -1;
   }
   if(num <= 100){
      return 100;
   }
   let prev = num - 1, next = num + 1;
   while(!isGapful(String(prev)) && !isGapful(String(next))){
      prev--;
      next++;
   };
   return isGapful(String(prev)) ? prev : next;
};

isGapful() ফাংশনটি একটি বুলিয়ান প্রদান করে যে সংখ্যাটি গ্যাপফুল কিনা বা অস্থির সময় নয়, নিকটতমGapful() ফাংশনটি লুপ করে যতক্ষণ না এটি একটি ফাঁকা সংখ্যা খুঁজে পায় এবং এটি ফেরত দেয়।

নিম্নলিখিত সম্পূর্ণ কোড -

উদাহরণ

const n = 134;
//receives a number string and returns a boolean
const isGapful = (numStr) => {
   const int = parseInt(numStr);
   return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0;
};
//main function -- receives a number, returns a number
const nearestGapful = (num) => {
   if(typeof num !== 'number'){
      return -1;
   }
   if(num <= 100){
      return 100;
   }
   let prev = num - 1, next = num + 1;
   while(!isGapful(String(prev)) && !isGapful(String(next))){
      prev--;
      next++;
   };
   return isGapful(String(prev)) ? prev : next;
};
console.log(nearestGapful(n));

আউটপুট

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

135

  1. জাভাস্ক্রিপ্টে NEGATIVE_INFINITY নম্বর

  2. জাভাস্ক্রিপ্ট নম্বর ফাংশন

  3. জাভাস্ক্রিপ্টে রেজিস্ট্রেশন নম্বরের ভিত্তিতে নম্বর প্লেট খোঁজা

  4. জাভাস্ক্রিপ্টে একটি সংখ্যা ত্রিভুজাকার সংখ্যা কিনা তা খুঁজে বের করা