PAT_乙级训练记录 (B1002)
来源:互联网 发布:js array 添加数据 编辑:程序博客网 时间:2024/06/06 19:47
PAT_乙级训练记录 (B1002)
1. 题目再现
写出这个数 (20’)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例: 1234567890987654321123456789
输出样例: yi san wu
2. 题目思考
题目较为复杂,主要掌握几个点:
- 控制台输入字符内容转化为int数据
- 结果倒序
- 拼音对应输出
3. 实现方式
c++实现
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
int main()
{
string pinyin[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
string num;
cin >> num;
int a = 0;
for(int i = 0; i < num.length(); i++)
{
a = a + num[i] - '0';
}
int arr[3];
int j = 0;
while(a != 0)
{
arr[j++] = a % 10;
a = a / 10;
}
while(j > 0)
{
j--;
cout << pinyin[arr[j]];
if(j!=0)
cout << " ";
}
return 0;
}java实现
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
// 计算结果
int num = 0;
for (int i = 0; i < str.length(); i++) {
num = num + str.charAt(i) - '0';
}
// 定义拼音数组
String pinyin[] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };
String result = Integer.toString(num);
for(int i = 0; i < result.length(); i++){
System.out.print(pinyin[result.charAt(i) - '0']);
if(i != result.length() - 1)
System.out.print(" ");
}
}
}
0 0
- PAT_乙级训练记录 (B1002)
- PAT_乙级训练记录 (B1001)
- PAT_乙级训练记录 (B1032)
- PAT_乙级训练记录 (B1036)
- PAT_乙级1001
- PAT_乙级1006
- PAT_乙级1011
- PAT_乙级1016
- PAT_乙级1021
- PAT_乙级1026
- PAT_乙级1031
- PAT_乙级1036
- PAT_乙级1041
- PAT_乙级1046
- PAT_乙级1002
- PAT_乙级1004
- PAT_乙级1005
- PAT_乙级1008
- 背景分割
- webservice入门(一)
- NFV
- C++回顾之C与C++区别_00
- 【数据结构笔记】4:非递归实现深度优先搜索(DFS)
- PAT_乙级训练记录 (B1002)
- 机器学习实战(6):SVM-SMO-核函数 手写识别
- Android图片压缩加密上传
- shader uv动画
- Linux和Windows常用命令
- C++中的基本数据类型及派生类型
- centos7 mariadb设置初始密码
- CentOS7 + Phpstorm + Xdebug本地和远程调试配置教程大全
- 8.1 基于对象的程序设计