愣徘徊
10级
2012-03-21 回答
思路:将汉字放入一字符数组中.
java code:
static void multiplicationTable() {
char[] chars = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' };
int result = 0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
result = i * j;
if (String.valueOf(result).length()==1){
System.out.print(String.format(" %s×%s=%s ", chars[i],
chars[j], chars[result]));
}else{
System.out.print(String.format(" %s×%s=%s%s ", chars[i],
chars[j], chars[(result/10)],chars[(result%10)]));
}
}
System.out.println();
}
}
ps:因为最大乘积不可能超过三位数,所以只需要取个位与十位即可.
补充:
不好意思,有点问题,没注意到十,改正.
static void multiplicationTable() {
char[] chars = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九','十' };
int result = 0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
result = i * j;
if (String.valueOf(result).length()==1){
System.out.print(String.format(" %s×%s=%s ", chars[i],
chars[j], chars[result]));
}else{
if(result%10==0){
System.out.print(String.format(" %s×%s=%s%s ", chars[i],
chars[j], chars[(result/10)],chars[(result%10) == 0 ? 10 : (result%10)]));
}else{
System.out.print(String.format(" %s×%s=%s%s%s ", chars[i],
chars[j], chars[(result/10)],chars[10],chars[(result%10)]));
}
}
}
System.out.println();
}
}