PAT乙级1002JAVA代码

江枫思渺然 提交于 2020-02-11 23:59:37

pat1002

题目网址:https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384:
题目描述

写出这个数 :

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​100​​。
输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:

1234567890987654321123456789

输出样例:

yi san wu

解题思路:
1.因为题目给出数值在10的100次方,因此用string来储存
2.给定一个数num,定义其初始值为0
计算num=输入字符串的每一个字符相加的值
4.定义sum返回num的原始值,并给output赋值拼音
计算num=sum的字符逐字相加
5.如果i不等于0,输入“ ”(空格),在输入num对应的拼音(实现每一个数字见得空格,并实现最后一个没有空格)

程序:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {   //用string存储
        Scanner input = new Scanner(System.in); 
        String str = input.nextLine();          //输入字符串
        int num = 0;                            //令num为0
        for (int i = 0; i < str.length(); i++) { 
            num += str.charAt(i) - '0';        //实现字符值相加
        }
        String sum = String.valueOf(num);      //赋值num给新定义的sum
        String[] output = {"ling","yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};                     //给output赋值拼音
        for (int i = 0; i < sum.length(); i++) {  
            num = sum.charAt(i) - '0';        //sum的字符逐渐相加
            if (i != 0)
                System.out.print(" ");        //输入空格,并保证最后一个字符没有空格
            System.out.print(output[num]);  //输出拼音表示的数字之和
        }
    }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!