Open In App

JavaScript Program to Construct Largest Number from Digits

Last Updated : 25 Oct, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we have given a set of digits, and our task is to construct the largest number generated through the combination of these digits. Below is an example for a better understanding of the problem statement.

Example:

Input: arr[] = {4, 9, 2, 5, 0}
Output: Largest Number: 95420

Using sort() Method

The sort function is used to sort the input digits either in ascending or descending order. As we need to construct the largest number, we will sort the input data in the descending order and then concatenate the sorted digits to construct the largest number.

Syntax:

digit.sort((a,b) => b-a); 

Example: In this example, we will construct largest number from numbers using sort() method.

Javascript




let inputNumbers = [8, 3, 4, 7, 9];
inputNumbers.sort((a, b) => b - a);
let largestNumber =
    inputNumbers.join("");
console.log(largestNumber);


Output

98743

Using Math.max Method

The Math.max method is used to find the largest number from the given numbers. We are randomly finding the maximum digit from the input set of numbers and storing the result in a new variable. We are using the Math.max method to find the maximum digit from the set of numbers.

Syntax:

Math.max([value1[, value2[, ...]]])

Example: In this example, we will construct the largest number from the digits using the Math.max() method.

Javascript




let inputNumber = [8, 3, 4, 7, 9];
let largestNumber = "";
while (inputNumber.length > 0) {
    let largestDigit = Math.max(
        ...inputNumber
    );
    largestNumber +=
        largestDigit.toString();
    inputNumber.splice(
        inputNumber.indexOf(
            largestDigit
        ),
        1
    );
}
console.log(largestNumber);


Output

98743

Using Loops

The loops in JavaScript can be used to select the largest number from a set of digits. We are creating an empty variable to store the largest number, then we are repeatedly finding the largest digit in the set of digits, then we are adding this largest digit to the variable and retrieving it from the array of input digits.

Syntax:

while(condtion) {
//statements
for(condition) {
if(condition) {
//statements
}}}

Example: In this example, we will construct the largest number from digits using looping in JavaScript.

Javascript




let inputNumber = [8, 3, 4, 7, 9];
let largest = "";
while (inputNumber.length > 0) {
    let largestDigit = -1;
    let largestDigitIndex = -1;
    for (
        let i = 0;
        i < inputNumber.length;
        i++
    ) {
        if (
            inputNumber[i] >=
            largestDigit
        ) {
            largestDigit =
                inputNumber[i];
            largestDigitIndex = i;
        }
    }
    largest += largestDigit.toString();
    inputNumber.splice(
        largestDigitIndex,
        1
    );
}
console.log(largest);


Output

98743

Using Array

The array is used to select the largest number from the data here. We are creating array names as “temp” that consist of 10 elements initialized to zero, where each of the elements corresponds to the digit [0-9]. Then we are iterating over the input numbers array and incrementing the count of each digit correlation in the “temp” array. There is an empty string, “largestNumber,” that stores the final result. We iterate in the reverse order, from 9 down to 0. For each digit [i], we are checking the count raised in [i]. Then it appends the digit ‘i’ to the largest number, t[i] times, to construct the largest number.

Syntax:

let temp = Array(10).fill(0);

Example: In this example, we will construct the largest number from the digits using the Array.

Javascript




let inputNumbers = [8, 3, 4, 7, 9];
let length = inputNumbers.length;
let temp = Array(10).fill(0);
  
for (let i = 0; i < length; i++) {
  temp[inputNumbers[i]]++; 
}
let largestNumber = '';
for (let i = 9; i >= 0; i--) {
  while (temp[i]-- > 0) { 
    largestNumber += String(i); 
  }
}
console.log(largestNumber);


Output

98743


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads