কম্পিউটার

ডিজিটাল রুট সাজানোর অ্যালগরিদম জাভাস্ক্রিপ্ট


কিছু ধনাত্মক পূর্ণসংখ্যার অঙ্কের মূলকে তার সমস্ত অঙ্কের যোগফল হিসাবে সংজ্ঞায়িত করা হয়। আমাদের পূর্ণসংখ্যার একটি বিন্যাস দেওয়া হয়েছে। আমাদের এটিকে এমনভাবে সাজাতে হবে যাতে b এর আগে a আসে যদি a এর অঙ্কের মূলটি b এর অঙ্কের মূলের চেয়ে কম বা সমান হয়। দুটি সংখ্যার একই অঙ্কের মূল থাকলে, ছোটটি (নিয়মিত অর্থে) প্রথমে আসা উচিত। উদাহরণস্বরূপ, 4 এবং 13 এর একই ডিজিট রুট আছে, তবে 4 <13 এইভাবে যেকোন ডিজিটরুট সাজানোর ক্ষেত্রে 13 এর আগে 4 আসে যেখানে উভয়ই উপস্থিত থাকে।

উদাহরণের জন্য,

for a = [13, 20, 7, 4],
the output should be [20, 4, 13, 7].

আসুন এই সমস্যার জন্য কোড লিখি -

আমরা এটিকে দুটি ফাংশনে ভাগ করব, একটি পুনরাবৃত্ত ফাংশন যা একটি সংখ্যার অঙ্কের যোগফল গণনা করে এবং তারপর একটি বাছাই ফাংশন যা সংখ্যার যোগফলের ভিত্তিতে উপাদানটিকে অর্ডার করে৷

এর জন্য কোড হবে −

উদাহরণ

const arr = [54, 23, 8, 89, 26];
const recursiveCount = (num, count = 0) => {
   if(num){
      return recursiveCount(Math.floor(num/10), count+num%10);
   };
   return count;
};
const sorter = (a, b) => {
   const countDifference = recursiveCount(a) - recursiveCount(b);
   return countDifference || a - b;
};
arr.sort(sorter);
console.log(arr);

আউটপুট

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

[ 23, 8, 26, 54, 89 ]

  1. জাভাস্ক্রিপ্টে প্রিম এর অ্যালগরিদম

  2. JavaScript Sort() পদ্ধতি

  3. জাভাস্ক্রিপ্টে Array.prototype.sort()।

  4. রেডিক্স সর্ট - জাভাস্ক্রিপ্ট