大步向前走不回头ln 2021-09-23 17:51 采纳率: 0%
浏览 22

PAT2001测试点一过不去,有哪位看看这是什么问题

这是题目

img


这是测试截图

img


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        //inputNum读取输入的数字
        String inputNum = sc.nextLine();

        //recordNum记录输入数据的每个数字
        int[] recordNum = new int[100];

        //将字符串中的每个数字存储再recorNum中,并将字符转化为整数
        for (int i = 0; i < inputNum.length(); i++) {
            recordNum[i] = inputNum.charAt(i)-'0';
        }
        //sum是各位数字之和
        int sum =0;
        for (int i = 0; i < recordNum.length; i++) {
            sum += recordNum[i];
        }

        //sumSplit记录sum拆分后的各位数据
        int[] sumSplit = new int[100];
        for (int i = 0; sum >= 1; i++) {
            sumSplit[i] = sum % 10;
            sum /= 10;
        }

        //strPrint记录需要输出对应数字的拼音
        String[] strPrint = new String[100];
        //记录strPrinr的有效长度
        int temp = 0;
        for (int i = 0; sumSplit[i] != 0; i++) {
            switch (sumSplit[i]) {
                case 0:
                    strPrint[i] = "ling";
                    break;
                case 1:
                    strPrint[i] = "yi";
                    break;
                case 2:
                    strPrint[i] = "er";
                    break;
                case 3:
                    strPrint[i] = "san";
                    break;
                case 4:
                    strPrint[i] = "si";
                    break;
                case 5:
                    strPrint[i] = "wu";
                    break;
                case 6:
                    strPrint[i] = "liu";
                    break;
                case 7:
                    strPrint[i] = "qi";
                    break;
                case 8:
                    strPrint[i] = "ba";
                    break;
                default:
                    strPrint[i] = "jiu";
                    break;
            }
            temp += 1;
        }
        for (int i = temp-1;i >= 0;i--){
            if (i != 0){
                System.out.print(strPrint[i]+" ");
            }else {
                System.out.println(strPrint[i]);
            }
        }
    }
}

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-09-23 18:13
    关注

    错误提示有提示一些信息吗,一般逻辑没问题,就是一些临界值,范围控制问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月23日

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?