কম্পিউটার

এনকোডিং দশমিক থেকে ফ্যাক্টোরিয়াল এবং জাভাস্ক্রিপ্টে ফিরে


সমস্যা

ফ্যাক্টরিয়াল সহ দশমিক সংখ্যা কোডিং হল একটি বেস সিস্টেমে সংখ্যা লেখার একটি উপায় যা সংখ্যার শক্তির পরিবর্তে ফ্যাক্টোরিয়ালের উপর নির্ভর করে।

এই সিস্টেমে, শেষ সংখ্যা সর্বদা 0 এবং ভিত্তি 0! এর আগের অঙ্কটি হয় 0 বা 1 এবং বেস 1 এ রয়েছে! তার আগের ডিজিট হয় 0, 1, বা 2 এবং বেস 2! ইত্যাদিতে থাকে। আরও সাধারণভাবে, nth-থেকে-শেষ ডিজিট সবসময় 0, 1, 2, ..., n এবং বেস n-এ থাকে! .

আমাদের দুটি ফাংশন প্রয়োজন হবে। প্রথমটি একটি দশমিক সংখ্যা পাবে এবং ফ্যাক্টরিয়াল উপস্থাপনা সহ একটি স্ট্রিং প্রদান করবে।

দ্বিতীয়টি একটি ফ্যাক্টরিয়াল উপস্থাপনা সহ একটি স্ট্রিং পাবে এবং দশমিক উপস্থাপনা তৈরি করবে।

যেমন-

দশমিক সংখ্যা 463 "341010" হিসাবে এনকোড করা হয়েছে, কারণ −

463 = 3×5! + 4×4! + 1×3! + 0×2! + 1×1! + 0×0!

উদাহরণ

নিম্নলিখিত কোড -

const num = 463;
const decimalToFact = (num = 1) => {
   const legend = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
   let str = '0';
   let i = 2;
   while(num){
      str = legend[num%i] + str;
      num = Math.floor(num / i);
      i++;
   };
   return str;
};
const factToDecimal = (str = '') => {
   const legend = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
   const l = str.length;
   return str
   .split('')
   .reduce((a,e,i) => Number(a) * (l - i) + legend.indexOf(e), 0);
};
const fact = decimalToFact(num);
const dec = factToDecimal(fact);
console.log(fact);
console.log(dec);

আউটপুট

নিম্নোক্ত কনসোল আউটপুট -

341010
463

  1. জাভাস্ক্রিপ্ট কনস্ট

  2. জাভাস্ক্রিপ্টে কনস্ট বনাম চলুন।

  3. একটি দশমিক সংখ্যার বিটগুলিকে উল্টানো এবং জাভাস্ক্রিপ্টে নতুন দশমিক সংখ্যা প্রদান করা

  4. জাভাস্ক্রিপ্টে অ্যারেগুলিকে একত্রিত করা এবং সংশোধন করা