Click here to Skip to main content
15,881,424 members
Articles / Programming Languages / Java

How to Find the Largest of 3 Numbers

Rate me:
Please Sign up or sign in to vote.
4.50/5 (2 votes)
16 Apr 2014CPOL1 min read 14.1K   2   6
How to find the largest of 3 numbers

Wait, if you are like man, what the hell? This is a silly program and you’re like we all have done it in our college or school. This has something more to it and you might find it interesting, so read on.

Now, most of us used to write some version of this:

Java
public class FindLargest{

	public static void main(String[] args){

		int a = 10, b = 20, c = 30;

		if(a >= b && a>=c){
			System.out.println("Largest number is : " + a);
		}
		if(b >= a && b>=c){
			System.out.println("Largest number is : " + b);
		}
		if(c >= a && c>=b){
			System.out.println("Largest number is : " + c);
		}
	}
}

Can this solution be improved? Yes. How?

Java
public class FindLargest{
	public static void main(String[] args){
		int a = 10, b = 20, c = 30;
		int largest = findLargest(a, b, c);
      	System.out.println("The largest number is : " + largest);
	}
	public static int findLargest(int a, int b, int c){
      int largest = a; // assume the first value is largest
      if(b > largest){
         largest = b; // see if b is the largest
      }
      if(c > largest){
         largest = c;  // see if c is the largest
      }
      return largest;
   }
}

What is nice about the above code is that it’s neat and easy to understand. Rather than just blindly checking each number is larger than the other two, we assume the first number to be the largest and assign it to a variable called ‘largest’. Then, we check if the other number is larger than the ‘largest’. If it is, then we assign that number to variable ‘largest’. We do this for each number. So at the end of all these comparisons, we should have the largest number in our ‘largest’ variable and we would just return it! Another thing to note here is that we have reduced the number of comparisons by 1. Also see that this code is easy to modify for 4 or more numbers.

Now, if you are like ‘dude, isn’t there a way to write this code so that I don’t have to modify it if I change my mind later and want it to work with n numbers?!!’ :) fortunately there is.’

change my mind

So, what is the solution?
Yes, the answer is varargs. And here is the code:

Java
public class FindLargest{
	public static void main(String[] args){
		int a = 10, b = 20, c = 30, d = 50;
		int x = 5;
		int p = 9, q = 3;

      	System.out.println("The largest number is : " + findLargest(a, b, c, d));

      	System.out.println("The largest number is : " + findLargest(x));

      	System.out.println("The largest number is : " + findLargest(p, q));

	}
	public static int findLargest(int a, int... nums){
      int largest = a; // assume the first value is largest
      for(int num : nums){
      	if(num > largest){
      		largest = num;
      	}
      }
      return largest;
   }
}

You can find this code in Java and Ruby here.
I hope you find this post helpful. And if you have any doubts or suggestions, feel free to drop a comment.

The post How to find the largest of 3 numbers appeared first on Bhargav's Blog.

This article was originally posted at http://bhargavk.tk/how-to-find-the-largest-of-3-numbers

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Junior)
India India
Hi, I’m Bhargav Kaneria. I live in Pune, India. By profession I am a young software
developer(Trainee). I like to learn new languages(obviously programming!). I’m comfortable in Java. I also have some knowledge of Ruby, Groovy and a bit of JavaScript(learning currently) and a bit of PHP. My area of interests include programming(duh!), Internet, data structures and algorithms, economics and history(mostly related to world war II).

Comments and Discussions

 
QuestionLINQ Pin
Jörg Reinhardt23-May-14 2:44
Jörg Reinhardt23-May-14 2:44 
QuestionSorry for being facetious... but Pin
terjeber23-Apr-14 23:07
terjeber23-Apr-14 23:07 
AnswerRe: Sorry for being facetious... but Pin
Bhargav Kaneria24-Apr-14 1:05
Bhargav Kaneria24-Apr-14 1:05 
GeneralRe: Sorry for being facetious... but Pin
terjeber25-Apr-14 1:25
terjeber25-Apr-14 1:25 
QuestionCan this be done with an IEnumerable extension method? Pin
George Swan16-Apr-14 20:42
mveGeorge Swan16-Apr-14 20:42 
AnswerRe: Can this be done with an IEnumerable extension method? Pin
Bhargav Kaneria17-Apr-14 7:50
Bhargav Kaneria17-Apr-14 7:50 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.