In this tutorial we will see **what is a duck number **, How to check given number is **duck number in java** or not and print all duck number in a given range using java program .

## What is a Duck?

A **Duck number** is a number which has zeroes present in it, but there should be no zero present in the beginning of the number. In other words , A **duck number** is a positive non-zero number which has zero present in it. The zero is present at any position of that number except at the starting of the number .

**Example of duck number :**

- 2210 is a Duck number because it contains zero , but not at the beginning .
- 0253 is not a Duck number because it contains zero at the beginning of number.
- 030201 is not a Duck number because it contains zero in beginning of the number.
- 00531 is also not a Duck number because it contains leading zeros.

## Algorithm to find Duck Number

- Take number variable (num) .
- check last digit of given number(num) is zero then return true .
- Remove the last digit from number(num).
- repeat step 2 & 3 until number(num) become zero.

## Duck Number Program In Java

We will implement above algorithm to find duck number in java** . **

```
package com.demo.program;
import java.util.Scanner;
public class DuckNumber {
//check given number is duck or not
public static boolean isDuckNumber(int num) {
//iterate loop until num become zero
while(num != 0) {
if(num%10 == 0)
return true; //return true if the number is Duck
// divide the number by 10 to remove the last digit
num = num / 10;
}
return false; //return false if the number is not Duck
}
public static void main(String args[])
{
int num;
//create scanner object to get input from user
Scanner sc=new Scanner(System.in);
System.out.println("Enter number");
//take input from user
num = sc.nextInt();
if (isDuckNumber(num))
System.out.println("given number "+ num + " is a Duck number");
else
System.out.println("given number "+ num + " is not a Duck number");
//close scanner object
sc.close();
}
}
```

Output:

```
Enter number
2304
given number 2304 is a Duck number
```

## Find all Duck Number in given Range

We will find duck number in java in given range . We take input of min range and max range from user and print all duck number in range .

```
package com.demo.program;
import java.util.Scanner;
public class DuckNumberInRange {
//check given number is duck or not
public static boolean isDuckNumber(int num) {
//iterate loop until num become zero
while(num != 0) {
if(num%10 == 0)
return true; //return true if the number is Duck
// divide the number by 10 to remove the last digit
num = num / 10;
}
return false; //return false if the number is not Duck
}
public static void main(String args[])
{
int minRange , maxRange;
//create scanner object to get input from user
Scanner sc=new Scanner(System.in);
System.out.println("Enter Min range");
//take user input
minRange = sc.nextInt();
System.out.println("Enter Max range");
//take user input
maxRange = sc.nextInt();
for (int i = minRange; i <= maxRange; i++) {
if (isDuckNumber(i))
System.out.println( i + " is a duck number");
}
//close scanner object
sc.close();
}
}
```

Output:

```
Enter Min range
0
Enter Max range
50
10 is a duck number
20 is a duck number
30 is a duck number
40 is a duck number
50 is a duck number
```

We learned in this tutorial what is duck number in java , how to find duck number in java and print all duck number in range . You can see more java coding program for practice .