समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो ठीक दो नंबर्स का एक ऐरे लेता है। पहला एलिमेंट किसी परिमेय संख्या का अंश निर्दिष्ट करता है और दूसरा एलिमेंट उसी का हर निर्दिष्ट करता है। हमारा फ़ंक्शन किसी भी संख्या के दो-एलिमेंट सबऐरे का एक ऐरे लौटाना चाहिए जैसे कि जब सबऐरे द्वारा निर्दिष्ट परिमेय संख्याओं को जोड़ा जाता है तो वे इनपुट परिमेय संख्या तक जुड़ जाते हैं और सभी सबऐरे का अंश 1 होना चाहिए। हमें यह भी सुनिश्चित करना होगा कि सबऐरे की संख्या यथासंभव कम हो।
उदाहरण
निम्नलिखिक कोड है −
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' ]