একটি সংখ্যার সবচেয়ে বড় এবং ছোট অঙ্কের পার্থক্য বের করা।
উদাহরণ
654646 অঙ্ক: 6, 5, 4, 6, 4, 6 সর্বোচ্চ: 6, সর্বনিম্ন: 4 পার্থক্য: 2
রিকার্সিভ সমাধান
const maxDifference = (num, min = Infinity, max = -Infinity) => {
num = Math.abs(num);
if (num === 0) {
return max === -Infinity ? 0 : max - min;
}
const digit = num % 10;
return maxDifference(
Math.floor(num / 10),
Math.min(digit, min),
Math.max(digit, max)
);
};
// ইটেরেটিভ (সুপারিশ করা)
const maxDifferenceIterative = (num) => {
const digits = String(Math.abs(num)).split('').map(Number);
return Math.max(...digits) - Math.min(...digits);
};
// টেস্ট
console.log(maxDifference(654646)); // 2
console.log(maxDifferenceIterative(654646)); // 2
console.log(maxDifference(11111)); // 0
console.log(maxDifference(9876543210)); // 9 (9-0)
ব্যাখ্যা
- রিকার্সিভ: ডিফল্ট প্যারামিটার দিয়ে min/max ট্র্যাক
- ইটেরেটিভ: স্ট্রিং কনভারশন + Math.min/max + spread
- এজ কেস: একক অঙ্ক, নেগেটিভ, ০
উৎপাদন
2