In the previous article, we have seen Java Program to Form Two Numbers (of 2 digit) with Maximum Sum Using Array Elements
In this article, we will see how to form two numbers of 2 digits with minimum sum using array elements in Java programming language.
Java Program to Form Two Numbers (2 digit) with Minimum Sum Using Array Elements
Prerequisite:
See below articles to know more about Array in Java, array declaration, array instantiation and array initialization.
- How to Declare an Array in Java?
- How to Instantiate an Array in Java?
- How to Initialize an Array in Java?
Base Condition:
- The number is a 2 digited number (Ex-54, 89, 71 etc.)
- We have to form 2 numbers using array elements.
- All the array elements need to be single digited only.
Let’s see different ways to form two numbers of 2 digits with minimum sum.
Method-1: Java Program to Form Two Numbers (of 2 digits) with Minimum Sum Using Array Elements By Using Sorting
Approach:
- Declare an array and with single digit numbers as array elements.
- Call the user defined method
findMinimum(). - Inside method, sort the array in ascending order.
- So first element of array is smallest element in array and elements are ordered in increasing order.
- So combine index-0 and index-1 element which is the 1st smallest number that can be formed using array elements.
- Next combine index-0 and index-2 element which is the 2nd smallest number that can be formed using array elements.
- As we have two smallest numbers so sum will be minimum.
- So, return those two numbers.
Program:
import java.util.Arrays;
import java.util.Comparator;
class Main
{
// Find two numbers with a minimum sum formed by digits of an array
public static void findMainimum(Integer[] input)
{
// sort the array in ascending order
Arrays.sort(input);
//find first number
int x = 0;
x = x * 10 + input[0];
x = x * 10 + input[1];
//find second number
int y=0;
y = y * 10 + input[0];
y = y * 10 + input[2];
// print `x` and `y`
System.out.println("The two numbers formed by using array elements with minimum sum are " + x + " and " + y);
int sum=x+y;
System.out.println("And the minimum sum is "+sum);
}
public static void main(String[] args)
{
Integer[] input = { 1,5,3,4,5 };
findMinimum(input);
}
}
Output: The two numbers formed by using array elements with minimum sum are 13 and 14 And the minimum sum is 27
Method-2: Java Program to Form Two Numbers (of 2 digits) with Minimum Sum Using Array Elements By Finding 1st, 2nd and 3rd Big Element from Array
Approach:
- Take user input of length of array.
- Take input of array elements (only single digits)
- Call the user defined method
findSmallest()to find 3 big elements in the array sayfirstNumber,secondNumberandthirdNumber. - After getting 3 small elements in the array, inside that
findSmallest()method, callfindMinNumber() method. - Inside
findMinNumber() method combinefirstNumberandsecondNumberelement which is the 1st smallest number that can be formed using array elements. - Next combine
firstNumberandthirdNumberelement which is the 2nd smallest number that can be formed using array elements. - As we have two smallest numbers so sum will be minimum.
- So, return those two numbers.
Program:
import java.util.Scanner;
public class Main
{
public static void main(String args[])
{
int length = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter number of elements in array: ");
//array length taken as input
length = sc.nextInt();
//array declared
int[] arr = new int[length];
//take input of single digited number as array element
System.out.println("Enter elements into array: ");
//taking input of array elements
for (int i = 0; i < length; i++)
{
arr[i] = sc.nextInt();
}
System.out.println("First 3 smallest numbers in array : ");
//calling findSmallest() method
findSmallest(arr);
}
//user defined method to find first 3 smallest element
private static void findSmallest(int[] arr)
{
int firstNumber = arr[0];
int secondNumber = 0;
int thirdNumber = 0;
for (int i = 0; i < arr.length; i++)
{
if (arr[i] < firstNumber)
{
thirdNumber = secondNumber;
secondNumber = firstNumber;
firstNumber = arr[i];
}
else if (arr[i] < secondNumber)
{
thirdNumber = secondNumber;
secondNumber = arr[i];
}
else if (arr[i] < thirdNumber)
{
thirdNumber = arr[i];
}
}
System.out.println("First smallest number : " + firstNumber);
System.out.println("Second smallest number : " + secondNumber);
System.out.println("Third smallest number : " + thirdNumber);
//calling findMinNumber() method
findMinNumber(firstNumber,secondNumber,thirdNumber);
}
//findMinNumber() user defined method to form two numbers whose sum is minimum
public static void findMinNumber(int firstNumber,int secondNumber,int thirdNumber)
{
//find first number
int x = 0;
x = x * 10 + firstNumber;
x = x * 10 + secondNumber;
//find second number
int y = 0;
y = y * 10 + firstNumber;
y = y * 10 + thirdNumber;
// print `x` and `y`
System.out.println("The two numbers formed by using array elements with minimum sum are " + x + " and " + y);
int sum=x+y;
System.out.println("And the minimum sum is "+sum);
}
}
Output: Enter number of elements in array: 6 Enter elements into array: 9 2 5 7 1 4 First 3 smallest numbers in array : First smallest number : 1 Second smallest number : 2 Third smallest number : 4 The two numbers formed by using array elements with minimum sum are 12 and 14 And the minimum sum is 26
Don’t stop learning now. Get hold of all the important Java fundamentals with the Simple java program example guide and practice well.
Related Java Articles: