起止洺 2017-02-28 13:03 采纳率: 100%
浏览 2919
已采纳

100以内阿拉伯数字转化为汉字.

今天在面试中遇到这样的题.麻烦哪位大神能帮吗解决一下!跪谢了
在函数execute中完成下面的功能: 参数amout是一个大于0的整数,最大值为99,类似:45
在函数中需要将amount转化为中文的描述,类似:四十五(按照日常惯例,例如14需要转化为“十四”,而不是“一十四”)
数字大写说明:一,二,三,四,五,六,七,八,九,十

  • 写回答

5条回答 默认 最新

  • 奔腾的野马 2017-02-28 14:10
    关注

    public class Test {

    public static void main(String[] args) {
        int amout = 11;
        int amout2 = 20;
        int amout3 = 66;
        System.out.println(amout+":"+execute(amout));
        System.out.println(amout2+":"+execute(amout2));
        System.out.println(amout3+":"+execute(amout3));
    }
    
    public static String execute(int amout){
        String str ="";
        if(amout<0||amout>99){
            str="不合法的数字";
        }else if(amout>=1&&amout<=10){
            str = cast(amout);
        }else if(amout>=11&&amout<=19){
            int num = amout%10;
            str = "十"+cast(num);
        }else if(amout>=20&&amout<=99){
            int num1 = amout/10%10;
            int num2 = amout%10;
                str = cast(num1)+"十"+cast(num2);
        }
    
        return str;
    
    }
    
    public static String cast(int num){
        String str="";
        switch(num){
        case 0:
            str="";
            break;
        case 1:
            str="一";
            break;
        case 2:
            str="二";
            break;
        case 3:
            str="三";
            break;
        case 4:
            str="四";
            break;
        case 5:
            str="五";
            break;
        case 6:
            str="六";
            break;
        case 7:
            str="七";
            break;
        case 8:
            str="八";
            break;
        case 9:
            str="九";
            break;
        case 10:
            str="十";
            break;
        }
        return str;
    
    }
    

    }

    程序运行结果:

    11:十一

    20:二十

    66:六十六

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?