
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Decompose Rational Number as a Sum of Rationals in JavaScript
Problem
We are required to write a JavaScript function that takes in an array of exactly two numbers.
The first element specifies the numerator of any rational number and the second element specifies the denominator of the same.
Our function should return an array of any number of sub arrays of two elements each such that when the rational number specified by the subarray are added they sum up to the input rational number and the numerator of all the subarrays should be 1.
We also need to make sure that the number of subarrays is as small as possible.
Example
Following is the code −
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));
Output
Following is the console output −
[ '1/2', '1/6' ]
Advertisements