-3

I am trying to print numbers in words. The code I have written is pretty much covering a lot of scenarios but not this: 100 (or 10). It should print One Zero Zero but its only printing one. Can someone please help.

public static void numberToWords (int number) {
        if (number < 0) {
            System.out.println("Invalid Value");
        }
        if (number==0){
            System.out.println("Zero");
        }
        number = reverse(number);
        int modulus = 0;
        while (number > 0) {
            if (number % 10 == 0) {
                System.out.println("Zero"); } else if (number % 10 == 1) { System.out.println("One"); } else if (number % 10 == 2) {
                System.out.println("Two"); } else if (number % 10 == 3) { System.out.println("Three");} else if (number % 10 == 4) {
                System.out.println("Four");} else if (number % 10 == 5) { System.out.println("Five");} else if (number % 10 == 6) {
                System.out.println("Six");} else if (number % 10 == 7) { System.out.println("Seven");} else if (number % 10 == 8) {
                System.out.println("Eight");} else if (number % 10 == 9) { System.out.println("Nine");}
            number/=10;
        }
    }
    public static int reverse (int number) {

        int reverse = 0;
        while (number != 0) {
            int lastdigit = (number % 10);
            reverse*=10;
            reverse +=lastdigit;
            number/=10;
        }
        return reverse;
    }
    public static int getDigitCount (int number) {
        if (number < 0) {
            return -1;
        }
        if (number==0){
            return 1;
        }
        int count = 0;
        int last = 0;
        while (number > 0) {
            last = number % 10;
            count++;
            number/=10;
        }
        return count;
    }

1 Answers1

0

When you reverse 100, it becomes 1. so you output it "one". Instead of doing all this thing, Just convert the number into a string and then char array. And then loop on this array