সমস্যা বিবরণ
একটি নম্বর দেওয়া আছে। এর রিভার্স নম্বর বের করে এবসোলিউট পার্থক্য রিটার্ন করতে হবে।
ইনপুট: 45467 → রিভার্স: 76454 → পার্থক্য: 76454 - 45467 = 30987
সমাধান
const num = 45467;
const findReversed = (num, res = 0) => {
if (num) {
return findReversed(Math.floor(num / 10), (res * 10) + (num % 10));
}
return res;
};
const findDifference = num => {
const reversed = findReversed(num);
const difference = Math.abs(num - reversed);
return difference;
};
console.log(findDifference(num)); // 30987
আউটপুট
30987
ব্যাখ্যা
findReversed: রিকার্সিভ ফাংশন।num % 10দিয়ে লাস্ট ডিজিট নেওয়া,res * 10দিয়ে শিফট করা,Math.floor(num/10)দিয়ে নেক্সট ডিজিটে যাওয়া।findDifference: রিভার্স বের করেMath.absদিয়ে পার্থক্য।
ইটেরেটিভ ভার্সন
const reverseNum = num => {
let rev = 0;
while (num > 0) {
rev = rev * 10 + num % 10;
num = Math.floor(num / 10);
}
return rev;
};