Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var nthUglyNumber = function(n, a, b, c) {
- const inputs = [a, b, c];
- const curr = [a, b, c];
- let counter = n;
- while (counter !== 1) {
- const sorted = curr.slice().sort((a, b) => a > b ? 1 : -1);
- let min = sorted[0];
- let minIndex = curr.findIndex((a) => a === min);
- let mid = sorted[1];
- let step = Math.floor((mid - min) / inputs[minIndex]) - 1;
- step = Math.min(step, counter - 1);
- step = Math.max(step, 1);
- curr[minIndex] += inputs[minIndex] * step;
- counter -= step;
- for (let i = 0; i < curr.length; ++i) {
- if (curr[i] === min) {
- curr[i] += inputs[i];
- }
- }
- }
- return Math.min(...curr);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement