সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা num প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি প্যালিনড্রোম পাওয়ার জন্য কতগুলো বিশেষ ধাপ লাগে তা ফেরত দেবে। বিশেষ ধাপটি হল: "অঙ্কগুলো উল্টে দিয়ে মূল সংখ্যার সাথে যোগ করা"। যদি ফলাফল প্যালিনড্রোম না হয়, তবে যোগফলের সাথে প্রক্রিয়া টি পুনরাবৃত্তি করতে হবে যতক্ষণ না প্যালিনড্রোম পাওয়া যায়।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
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