সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র যুক্তি হিসাবে একটি সংখ্যা, সংখ্যা নেয়৷
আমাদের ফাংশন একটি প্যালিনড্রোম প্রাপ্ত করার জন্য প্রয়োজনীয় বিশেষ পদক্ষেপের সংখ্যা ফেরত দেওয়া উচিত। বিশেষ পদক্ষেপ হল:"অঙ্কগুলি বিপরীত করুন এবং আসল সংখ্যায় যোগ করুন"। যদি ফলিত সংখ্যাটি নোটা প্যালিনড্রোম হয়, তাহলে যোগফলের সাথে পদ্ধতিটি পুনরাবৃত্তি করুন যতক্ষণ না ফলিত সংখ্যাটি একটি প্যালিনড্রোম হয়৷
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
ইনপুট
const num = 87;
আউটপুট
const output = 4;
আউটপুট ব্যাখ্যা
কারণ জড়িত পদক্ষেপগুলি হল −
87 + 78 = 165; 165 + 561 = 726; 726 + 627 = 1353; 1353 + 3531 = 4884
উদাহরণ
নিম্নলিখিত কোড -
const num = 87; const countSteps = (num) => { let res = 0; while (!isPalindrome(num)) { res++ num += +('' + num).split``.reverse().join`` }; return res; } const isPalindrome = num => { let i = 0 let str = '' + num while (i++ <= str.length / 2) { if (str[i] !== str[str.length - 1 - i]) return false }; return true } console.log(countSteps(num));
আউটপুট
4