Duck Number in Java: Definition, Rules, Examples, and Practice Problems
A Duck Number is any positive integer that contains at least one zero, but the number must not begin with zero. Duck Numbers are commonly asked in basic number theory and programming interviews because they test a student's understanding of digit validation.
What Is a Duck Number?
A number is considered a Duck Number if:
- It contains at least one zero.
- It does not start with zero.
Examples:
- 102, 705, 9081 → Duck Numbers
- 123, 5678 → Not Duck Numbers (no zero)
- 0123 → Not a Duck Number (starts with zero)
Why Is It Called a Duck Number?
The digit zero resembles a duck’s egg, which led to such numbers being informally named Duck Numbers.
Algorithm to Check a Duck Number
- Read the number as a string.
- Ensure the first digit is not zero.
- Check if zero appears in the remaining digits.
Java Program to Check Duck Number
import java.util.*;
public class DuckNumberCheck {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number: ");
String num = sc.next();
if (num.charAt(0) == '0') {
System.out.println("Not a Duck Number");
} else {
boolean hasZero = false;
for (int i = 1; i < num.length(); i++) {
if (num.charAt(i) == '0') {
hasZero = true;
break;
}
}
if (hasZero) {
System.out.println("Duck Number");
} else {
System.out.println("Not a Duck Number");
}
}
}
}
Examples
| Number | Contains Zero? | Starts With Zero? | Duck Number? |
|---|---|---|---|
| 204 | Yes | No | Yes |
| 9071 | Yes | No | Yes |
| 1203 | Yes | No | Yes |
| 123 | No | No | No |
| 0129 | Yes | Yes | No |
3 Practice Challenges
Challenge 1: Simple Check
Write a Java program to check whether the user-input number is a Duck Number without using string conversion.
Challenge 2: Count Duck Numbers
Given an array of integers, count how many of them are Duck Numbers.
Challenge 3: Generate Duck Numbers
Write a Java program to print all Duck Numbers between 1 and 50,000.