এই প্রোগ্রামে একটি সংখ্যার সবচেয়ে বড় এবং ছোট অঙ্ক খুঁজে বের করে তাদের পার্থক্য গণনা করা হয়।
উদাহরণ
সংখ্যা: 44353456 অঙ্কগুলো: 4, 4, 3, 5, 3, 4, 5, 6 সর্বনিম্ন: 3 সর্বোচ্চ: 6 পার্থক্য: 6 - 3 = 3
রিকার্সিভ সমাধান
const difference = (num, min = Infinity, max = -Infinity) => {
// বেস কেস: সংখ্যা ০ হলে
if (num === 0) {
return max - min;
}
// শেষ অঙ্ক বের করুন
const digit = Math.abs(num % 10);
// রিকার্সিভ কল বাকি অংশের জন্য
return difference(
Math.floor(Math.abs(num) / 10),
Math.min(digit, min),
Math.max(digit, max)
);
};
// টেস্ট
console.log(difference(44353456)); // 3
console.log(difference(5464676)); // 3 (7-4)
console.log(difference(11111)); // 0
console.log(difference(-98765)); // 8 (9-1)
ইটেরেটিভ সমাধান (আরো সহজ)
const differenceIterative = (num) => {
const digits = Math.abs(num).toString().split('').map(Number);
const min = Math.min(...digits);
const max = Math.max(...digits);
return max - min;
};
তুলনা
- রিকার্সিভ: এলিগেন্ট, কিন্তু বড় সংখ্যার জন্য স্ট্যাক ওভারফ্লো রিস্ক
- ইটেরেটিভ: সিম্পল, দ্রুত, কোনো স্ট্যাক রিস্ক নেই
উৎপাদন
3