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

জাভাস্ক্রিপ্টে মনোটোন ডিজিট সহ ঠিক ছোট সংখ্যা


মনোটোনিক্যালি ইনক্রিজিং ডিজিট

একটি পূর্ণসংখ্যার মনোটোন ইনক্রিজিং ডিজিট থাকলে যদি এবং কেবল যদি প্রতিটি সংলগ্ন অঙ্ক জোড়া x এবং y x <= y সন্তুষ্ট করে।

সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা num প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।

ফাংশনটি সাদা বড় সংখ্যা খুঁজে বের করবে যা num-এর চেয়ে কম বা সমান এবং যার ডিজিটগুলো মনোটোন ইনক্রিজিং।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

ইনপুট

const num = 332;

আউটপুট

const output = 299;

উদাহরণ

নিচে কোডটি দেওয়া হল –

const num = 332; 
const monotoneIncreasingDigits = (num) => { 
  const checkMonotone = (x) => { 
    if (x <= 9) { 
      return true; 
    } 
    let currentDigit = x % 10; 
    while (x) { 
      const next = Math.floor(x / 10); 
      const nextDigit = next % 10; 
      if (currentDigit >= nextDigit) { 
        currentDigit = nextDigit; 
        x = next; 
      } else { 
        return false; 
      } 
    } 
    return true; 
  }; 
  if (checkMonotone(num)) { 
    return num; 
  } 
  const digits = num.toString().split('').map(x => Number(x)); 
  return digits.reduce((acc, num, index) => { 
    if (num >= 1) { 
      const current = parseInt(digits.slice(0, index).join('') + num - 1 + new Array(digits.length - index - 1).fill('9').join(''), 10); 
      if (checkMonotone(current)) { 
        return Math.max(acc, current); 
      } 
    } 
    return acc; 
  }, 0); 
}; 
console.log(monotoneIncreasingDigits(num));

আউটপুট

299

  1. জাভাস্ক্রিপ্টে সংখ্যার অঙ্কগুলো আলাদা করা

  2. জাভাস্ক্রিপ্টে একই অঙ্ক দিয়ে ইনপুট সংখ্যার চেয়ে বড় সবচেয়ে ছোট সংখ্যা বের করা

  3. জাভাস্ক্রিপ্টে একই অঙ্ক দিয়ে তৈরি ঠিক বড় সংখ্যা খুঁজে বের করা

  4. জাভাস্ক্রিপ্টে সংখ্যার ফ্যাক্টোরিয়ালের অঙ্ক সংখ্যা বের করা