Before understanding what is Bouncy number, first we need to understand the terms increasing and decreasing numbers.
Read Also : Java Program to Check Happy Number
Increasing Number
Moving from left to right, if no digit is exceeded by the digit to its left. Then the number is known as increasing number.
Below are examples of Increasing Numbers :
1233
23689 112334566
Read Also : Check Given Number is Pronic or Not
Decreasing Number
Moving from left to right, if no digit is exceeded by the digit to its right. Then the number is known as decreasing number.
Below are examples of Decreasing Numbers :
321
88531 8755321
What is Bouncy Number
Bouncy number is any positive integer which is neither increasing nor decreasing number.Below are examples of Bouncy numbers :
101
43682 123742
All numbers below 100 are not Bouncy number. 101 is the first bouncy number.
Java Program for Bouncy Number
import java.util.*; public class JavaHungry { public static void main(String args[]) { System.out.println("Enter any number : "); Scanner scan = new Scanner(System.in); int inputNumber = scan.nextInt(); if (isIncreasing(inputNumber) || isDecreasing(inputNumber) || inputNumber < 101) System.out.println(inputNumber+" Not a Bouncy number"); else System.out.println(inputNumber+" is a Bouncy number"); } public static boolean isIncreasing(int inputNumber) { // Converting inputNumber to String String str = Integer.toString(inputNumber); char digit; boolean flag = true; for(int i=0;i < str.length()-1;i++) { digit = str.charAt(i); /*if any digit is greater than next digit, Stop checking further*/ if(digit > str.charAt(i+1)) { flag = false; break; } } return flag; } public static boolean isDecreasing(int inputNumber) { // Converting inputNumber to String String str = Integer.toString(inputNumber); char digit; boolean flag = true; for(int i=0;i < str.length()-1;i++) { digit = str.charAt(i); /*if any digit is lesser than next digit, Stop checking further*/ if(digit < str.charAt(i+1)) { flag = false; break; } } return flag; } }
Output :
Enter any number : 12345
12345 Not a Bouncy number
Enter any number : 123453
123453 is a Bouncy number
Algorithm for Bouncy Number
1. Convert inputNumber to String and store its value in variable str.2. Initialize flag boolean variable to true. The final value of flag variable will decide whether the number is Bouncy number or not.
3. Using for loop
a. Move from leftmost character to right.
b. In isIncreasing() method, check if any digit is greater than next digit. If yes then set flag to false and come out of the for loop.
c. In isDecreasing() method, check if any digit is lesser than next digit. If yes then set flag to false and come out of the for loop.
4. Return the value of flag variable.
That's all for the day, please mention in the comments if you know any other way to check whether a given number is Bouncy Number or not.