【发布时间】:2021-07-21 05:52:49
【问题描述】:
这是我的代码:
public static void numberToWords(int number){
int lastDigit;
if(number < 0){
System.out.println("Invalid Value");
}
while(number != 0) {
lastDigit = number % 10; // lastDigit = 3
number = number / 10;
reverse(number);
if (lastDigit == 0) {
System.out.println("ZERO");
}
if (lastDigit == 1) {
System.out.println("ONE");
}
if (lastDigit == 2) {
System.out.println("TWO");
}
if (lastDigit == 3) {
System.out.println("THREE");
}
if (lastDigit == 4) {
System.out.println("FOUR");
}
if (lastDigit == 5) {
System.out.println("FIVE");
}
if (lastDigit == 6) {
System.out.println("SIX");
}
if (lastDigit == 7) {
System.out.println("SEVEN");
}
if (lastDigit == 8) {
System.out.println("EIGHT");
}
if (lastDigit == 9) {
System.out.println("NINE");
}
}
}
public static void reverse(int a){
int finalDigit = 0;
int reverse1 = 0;
while(a > 0) {
finalDigit = a % 10;
reverse1 = reverse1 * 10 + finalDigit;
a = a / 10;
}
}
我的数字根据需要打印为字符串,但它们以相反的顺序出现。
我尝试将reverse方法添加到转换方法中,但结果总是一样,不知道如何反转它。
【问题讨论】:
-
你听说过else和switch吗?
-
请编辑您的问题并为您使用的语言添加标签
-
您的函数 reverse 不返回值,因此它所做的任何工作都不会被看到。 reverse 应该是 int 不是 void,需要返回 reverse1。
-
这个问题不应该被关闭:这绝对不是通过引用传递的问题。 OP 只是无法弄清楚他们的算法,并且忘记了返回他们的反向函数。 @Abdulrahman 可以从对此的贡献中学到很多东西
-
@GhostCat 你能考虑投票重新提出这个问题吗?