Before understanding what is Bouncy number, first we need to understand the terms increasing and decreasing numbers.

*Java Program to Check Happy Number*

**Read Also :****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

**Check Given Number is Pronic or Not**

**Read Also :**

**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**

885318755321

##
**
What is Bouncy Number**

Bouncy number is any positive integer which is neither increasing nor decreasing number.Below are examples of Bouncy numbers :

`101`

43682123742

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.