Java Program to Check Duck Number

A duck number is a number that contains at least one zero in it, but the zero should not be at the beginning.

For example, 102 is a duck number, but 012 is not considered a valid duck number.

1. Understanding the Problem

Determine whether a given number is a duck number.

Number: 102 → Duck
Number: 1203 → Duck
Number: 123 → Not Duck

2. Using Basic Loop

Java
Check duck number using loop
import java.util.Scanner;

public class DuckNumber {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int num = sc.nextInt();

        boolean isDuck = false;

        while (num > 0) {
            int digit = num % 10;
            if (digit == 0) {
                isDuck = true;
                break;
            }
            num /= 10;
        }

        if (isDuck)
            System.out.println("Duck Number");
        else
            System.out.println("Not a Duck Number");
    }
}

3. Optimized Approach

Java
Check duck number using string method
import java.util.Scanner;

public class DuckOptimized {
    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' && num.contains("0"))
            System.out.println("Duck Number");
        else
            System.out.println("Not a Duck Number");
    }
}

4. Common Mistakes

1. Considering leading zero as valid.

2. Not checking all digits properly.

3. Breaking loop too early without checking full number.

4. Confusing with other digit-based problems.

5. Applications

1. Helps in understanding digit validation logic.

2. Useful for practicing loops and string handling.

3. Common beginner-level programming exercise.

Conclusion

Duck number programs are simple and useful for understanding digit-based checks.

Using string methods can simplify validation logic.