1002 写出这个数 (20 分)

题目来源

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 $10^{100}$

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

C++实现:

分析:

因为数字的范围是小于$10^{100}$,所以要用string接收输入,将string中的每一位数字累加到sum里,用 to_string(sum) 将sum转化成字符串nums,然后逐一输出nums对应的拼音

 #include <iostream>
#include <string>
using namespace std; int main()
{
string str;
string output[] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
int sum = ; cin >> str;
int length = str.length(); for (int i = ; i < length; ++i)
{
sum = sum + str[i] - '';
} string nums = to_string(sum); for (int i = ; i < nums.length(); ++i)
{
if (i != )
{
cout << " ";
}
cout << output[nums[i] - ''];
} return ;
}

另解:

利用栈后进先出(FILO)的特点

同样用string接收输入,将string中的每一位数字累加到sum里,接着将sum的每一位数字保存到栈中,然后进行出栈的操作,输出对应的拼音

假定sum = 135,那么入栈的顺序就是(栈底)5 3 1(栈顶),出栈的顺序就是1 3 5

 #include <iostream>
#include <string>
#include <stack>
using namespace std; int main()
{
string str;
string output[] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
stack<int> v;
int sum = ; cin >> str;
int length = str.length(); for (int i = ; i < length; ++i)
{
sum = sum + str[i] - '';
}
//
while (sum != )
{
v.push(sum % );
sum /= ;
}
cout << output[v.top()];
v.pop();
while (!v.empty())
{
cout << " " << output[v.top()];
v.pop();
}
return ;
}

Java实现:

 import java.util.Scanner;

 public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str = input.nextLine();
int num = 0;
for (int i = 0; i < str.length(); i++) {
num += str.charAt(i) - '0';
}
String s = String.valueOf(num);
String[] output = {"ling","yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
for (int i = 0; i < s.length(); i++) {
num = s.charAt(i) - '0';
if (i != 0)
System.out.print(" ");
System.out.print(output[num]);
}
}
}

PAT 乙级 1002.写出这个数 C++/Java的更多相关文章

  1. PAT乙级 1002. 写出这个数 (20)

    1002. 写出这个数 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入一个自然数n,计算其各位数字 ...

  2. [C++]PAT乙级1002.写出这个数(20/20)

    /* 1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. ...

  3. PAT乙级1002. 写出这个数 (20)

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

  4. PAT 乙级 -- 1002 -- 写出这个数

    题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字 ...

  5. PAT 乙级 1002. 写出这个数 (20)(C语言描述)

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

  6. 【PAT】1002. 写出这个数 (20)

    1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式 ...

  7. PAT Basic 1002 写出这个数 (20 分)

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

  8. 【x】 PAT/BasicLevel_C++/1002. 写出这个数 (20).cpp

    C++中的to_string()函数[C++11支持] - Bravo Yeung-羊较瘦之自留地 - CSDN博客https://blog.csdn.net/lzuacm/article/detai ...

  9. PAT 乙级练习题1002. 写出这个数 (20)

    1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式 ...

随机推荐

  1. shell脚本-练习1

  2. Docker环境下的前后端分离项目部署与运维(九)后端项目部署与负载均衡

    数据库准备 建立数据库 renren_fast ,然后运行renrenfast项目中的db文件夹内的脚本 -- 菜单 CREATE TABLE `sys_menu` ( `menu_id` bigin ...

  3. caffe解析

    Caffe支持CUDA,Caffe和TensorFlow没有给出分布式的版本, 可以使用多gpu,Caffe通过直接在执行指令后面加上-gpu 0,1

  4. Ubuntu 在终端关闭情况下仍然运行进程

    参考: 让Linux关闭终端(关闭SSH等)后,程序继续运行 Ubuntu 在终端关闭情况下仍然运行进程 在 Ubuntu 16.04 系统下使用 screen 命令在终端关闭情况下仍然运行进程.具体 ...

  5. 学习Linux要知道的知识点总结

    1 如何查看Linux的user和hostname? (1)打开终端查看 终端左侧的root@zlkj:~$,前面的root为user - 用户名,后面的zlkj为hostname - 主机名. (2 ...

  6. xilinx SDK开发 GPIO使用API总结

    t_v GPIO常用函数 1.XGpio_Config *XGpio_LookupConfig(u16 DeviceId) 功能:根据输入设备ID查找该设备. 输入:设备ID. 输出:若找到该设备ID ...

  7. kali 命令

    1.添加用户 如下命令是用root执行的 adduser dong 会直接在/home 目录创建 dong 目录 2.将用户划分到某个组 gpasswd -a user group 3.ifconfi ...

  8. spark 存取mysql

    1.先上代码,存入mysql val spark = SparkSession.builder() .appName("jdbc") .getOrCreate() import s ...

  9. SQLite中字段顺序和PAGE_SIZE对性能的影响

    1.背景 SQLite数据库中有1张表,该表含若干个字段,其中有1个字段为BLOB类型,且BLOB字段不是最后1个字段.表结构类似如下(col3为BLOB字段): T (col1 INTEGER,co ...

  10. 用Powershell强制同步Windows主机与Internet time server的时间

    第一步,判断Windows Time服务是否正在运行,如果没有,则开启它. 第二步,强制同步,不知为何,往往第一次会失败,那么就多运行几次好了. Get-Service w32time | Where ...