请问这个代码怎么写呢

为了让你热身,让我们试着让一个算法工作。

写一个程序输出“墙上九十九瓶啤酒”的歌词。你的程序应该用英语打印瓶子的数字,而不是数字。例如

墙上挂着九十九瓶啤酒。

墙上有一瓶啤酒。

一瓶啤酒,

取下一个,传给别人,

墙上没有一瓶啤酒。

您的程序不能只有99条OUTPUT语句。


    char[] numbers = {'十', '一','二','三','四','五','六','七','八','九'};

    void printBeers(int number) {
        for(int i = number; i >= 0; i--) {
            String chineseNum = getZNNumber(i);
            System.out.println("墙上挂着"+ chineseNum +"瓶啤酒\n" + chineseNum + "瓶啤酒\n" +
                    "取下一个,传给别人");
            System.out.println();
            if(i == 1) {
                System.out.println("墙上没有一瓶啤酒");
                break;
            }
        }
    }

    String getZNNumber(int arab) {
        StringBuilder number = new StringBuilder();
        if(arab < 2) number.append(numbers[arab]);
        int bit = 1, num = arab;
        while (num > 1) {
            if(bit >= 10 && arab % 10 != 0) {
                number.insert(0, '十');
            }
            number.insert(0, numbers[num % 10]);
            num /= 10;
            bit *= 10;
        }
        return number.toString();
    }

是这个意思吗?有用请采纳。


class test {
    public static void main(String[] args) {
        int i;
        for (i=99;i>0;i--) {
            System.out.println("墙上挂着"+i+"瓶啤酒");
            System.out.println("取下一个,传给别人。");
            if(i==1) {
                System.out.println("墙上没有一瓶啤酒");
            }
        }
    }
}

我也围观一下

做个对照表吧,1-19每个单词对应,20.30..90在做个对照,然后就这样吧——谁有更好的方法?