Java Varargs sum program using Java HackerRank solutions
Problem
You are given a class Solution and its main method in the editor.
Your task is to create the class Add and the required methods so that the code prints the sum of the numbers passed to the function add.
Note: Your add method in the Add class must print the sum as given in the Sample Output.
Input Format
There are six lines of input, each containing an integer.
Output Format
There will be only four lines of output. Each line contains the sum of the integers passed as the parameters to add in the main method.
Sample Input
1
2
3
4
5
6
Sample Output
1+2=3
1+2+3=6
1+2+3+4+5=15
1+2+3+4+5+6=21
Solution
import java.io.*;
import java.lang.reflect.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
class Add {
int sum = 0;
public void add(int... n) {
for (int x : n) {
sum += x;
System.out.print(x);
if (x != n[n.length - 1]) {
System.out.print("+");
}
}
System.out.println("=" + sum);
sum = 0;
}
}
public class Solution {
public static void main(String[] args) {
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n1=Integer.parseInt(br.readLine());
int n2=Integer.parseInt(br.readLine());
int n3=Integer.parseInt(br.readLine());
int n4=Integer.parseInt(br.readLine());
int n5=Integer.parseInt(br.readLine());
int n6=Integer.parseInt(br.readLine());
Add ob=new Add();
ob.add(n1,n2);
ob.add(n1,n2,n3);
ob.add(n1,n2,n3,n4,n5);
ob.add(n1,n2,n3,n4,n5,n6);
Method[] methods=Add.class.getDeclaredMethods();
Set<String> set=new HashSet<>();
boolean overload=false;
for(int i=0;i<methods.length;i++)
{
if(set.contains(methods[i].getName()))
{
overload=true;
break;
}
set.add(methods[i].getName());
}
if(overload)
{
throw new Exception("Overloading not allowed");
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Steps involved in this solution:
1. Import required packages for input/output operations, reflection, working with collections, and exception handling.
2. Define the Add class, which will be used to perform addition operations.
3. Inside the Add class, declare an integer variable sum to store the cumulative sum.
4. Define a public method named add inside the Add class. This method uses varargs (variable-length arguments) to accept a variable number of integers. In the method, iterate through the provided integers and calculate their cumulative sum. During the iteration, format the output to display the intermediate sum and the numbers being added.
5. Define the Solution class, which contains the main method as the entry point of the program.
6. Inside the main method, use a BufferedReader to read six integer values from the standard input (stdin). These values are stored in n1, n2, n3, n4, n5, and n6.
7. Create an instance of the Add class named ob.
8. Call the add method of the Add object ob multiple times with different sets of integers as arguments. This will calculate the cumulative sum and display the output for each set of integers.
9. Using reflection, obtain the methods declared in the Add class and check if there is more than one method with the same name (add). If overloading is detected, set the overload flag to true.
10. If the overload flag is set to true, throw an exception with the message "Overloading not allowed."
11. The program completes after handling exceptions or finishing the addition operations and method overload check