题解 | #人民币转换#

人民币转换

https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String[] Nums = {"", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        String[] Power = {"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"};
        while (in.hasNextDouble()) { // 注意 while 处理多个 case
            Double n = in.nextDouble();
            List<String> list = new ArrayList<>();
            
            //处理小数位
            //String.split处理方便很多
            if (n % 1 == 0)list.add("整");
            else {
                if ((int)Math.round(n * 100) % 10  != 0) {

                    list.add("分");
                    list.add(Nums[(int)Math.round(n  * 100) % 10]);
                }
                if ((int)(n * 100) % 100 / 10 !=0){
                     list.add("角");
                list.add(Nums[(int)(n * 100) % 100 / 10]);
                }
                   
            }

            //处理整数部分
            int power = 0;
            int z = (int)Math.round(n - 0.5); //取整数部分

            if (z != 0)list.add("元");

            while (z != 0) {
                int q = z % 10; //以10为单位讨论
                if (q != 0) {
                    list.add(Power[power]);
                    if ((power == 1 || power == 5 || power == 9) && q == 1)list.add("");//十几的情况
                    else list.add(Nums[q]);
                } else {
                    list.add("零");
                }
                z /= 10; //右移一位
                power++;//单位上升一位

            }

            list.add("人民币");

            StringBuilder sb = new StringBuilder();
            for (int i = list.size() - 1; i >= 0; i--) {
                sb.append(list.get(i));
            }
            System.out.println(sb.toString().replaceAll("[零]+", "零"));

        }
    }
}

全部评论

相关推荐

11-07 16:07
深圳大学 运营
前端飞升:学长,阿里不是卡双非吗,我深也能去吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务