【发布时间】:2014-02-21 20:41:40
【问题描述】:
我的程序是将 0 到 100 之间的数字转换为单词。我不确定哪种策略最适合解决这个问题,但我想使用模块等数学运算符。这就是我目前所掌握的。
package project.pkg1;
import java.util.Scanner;
public class Project1 {
public static final int MINUMUN_NUMBER = 0;
public static final int MAXIMUM_NUMBER = 100;
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int num, x;
do{
System.out.println("Enter a number between 0 and 100: ");
num = keyboard.nextInt();
} while ((num < 0) || (num > 100));
if(num == 0)
System.out.println("zero");
if(num == 100)
System.out.println("one hundred");
我不想每次都使用 if(num == x)。我的验证陷阱确保它在 0 到 100 之间工作正常。我只是不确定如何处理其余部分。这是我可以打印的:
run:
Enter a number between 0 and 100:
-1
Enter a number between 0 and 100:
101
Enter a number between 0 and 100:
34
BUILD SUCCESSFUL (total time: 23 seconds)
我需要 34 来打印“三十四” 任何反馈将不胜感激!
【问题讨论】:
-
这是一项乏味的任务。我建议写下数字和它们的匹配词,以找到案例的相似之处。将涉及许多
if语句。 -
不一定是 if 语句,例如如果单词存储为数组元素,数字为索引。
-
有一个基本和不规则情况的地图(1->一,2->二,...);尝试使用组合规则(例如 46 = (40) 四十 + (6) 六)。
-
不是重复的,因为 1-100 是一种特殊情况,手工完成时更易于管理。
-
记得大学的时候,有人写了一个 100 swich case block,太搞笑了:-)