সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা ঠিক দুটি সংখ্যার একটি অ্যারে নেবে। প্রথম উপাদান যেকোনো 유리সঙ্গখ্যা (rational number) এর লব (numerator) এবং দ্বিতীয় উপাদান হর (denominator) নির্দেশ করে। ফাংশনটি যেকোনো সংখ্যক দুটি উপাদান বিশিষ্ট সাব-অ্যারে ফেরত দেবে যাতে সাব-অ্যারেগুলোর 유리সংখ্যাগুলো যোগ করলে ইনপুট 유리সংখ্যা বने এবং সকল সাব-অ্যারের লব ১ হয়। সাব-অ্যারেগুলোর সংখ্যা যতটা সম্ভব কম রাখতে হবে।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
const num = '2/3';
const decompose = (num = '') => {
const fractions = [];
let res = eval(num);
if (res >= 1) {
fractions = ['' + Math.floor(res)];
res = res - Math.floor(res);
}
let sum = 0;
let denom = 2;
while (sum <= res - 0.000000001) {
if (1 / denom + sum <= res) {
fractions.push("1/" + denom);
sum += 1 / denom;
}
denom++;
}
return fractions;
}
console.log(decompose(num));আউটপুট
কনসোল আউটপুট:
[ '1/2', '1/6' ]