PAT 乙级 1002.写出这个数 C++/Java
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的更多相关文章
- PAT乙级 1002. 写出这个数 (20)
1002. 写出这个数 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入一个自然数n,计算其各位数字 ...
- [C++]PAT乙级1002.写出这个数(20/20)
/* 1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. ...
- PAT乙级1002. 写出这个数 (20)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...
- PAT 乙级 -- 1002 -- 写出这个数
题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字 ...
- PAT 乙级 1002. 写出这个数 (20)(C语言描述)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...
- 【PAT】1002. 写出这个数 (20)
1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式 ...
- PAT Basic 1002 写出这个数 (20 分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...
- 【x】 PAT/BasicLevel_C++/1002. 写出这个数 (20).cpp
C++中的to_string()函数[C++11支持] - Bravo Yeung-羊较瘦之自留地 - CSDN博客https://blog.csdn.net/lzuacm/article/detai ...
- PAT 乙级练习题1002. 写出这个数 (20)
1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式 ...
随机推荐
- VUE:页面跳转时传递参数,及参数获取
https://www.cnblogs.com/zhongchao666/p/9679807.html https://blog.csdn.net/mf_717714/article/details/ ...
- spring&pom两种获取profile的方式
一.原理: 1.实现ApplicationContextAware(当一个类实现了ApplicationContextAware这个接口之后,这个类就可以通过setApplicationContext ...
- Linux+Nginx+Supervisor部署ASP.NET Core实操手册
一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...
- 给电脑提升权限---- 切换为administrator
在装系统的时候我们都会在安装的时候进行创建用户这一操作,安装软件的时候总会出现权限不足的情况, 个人建议:如果你要是比较会使用电脑的话,可以体验一下超级管理员这一角色, 就是安装好了之后,切换为超级管 ...
- Lambda表达式和方法引用
1 , 为什么用lambda表达式 将重复固定的代码写法简单化 2 ,lambda表达式的实质 对函数式接口的实现(一个接口中只有一个抽象方法的接口被称为函数式接口) package com.mo ...
- beego:限制接口访问频率
package utils import ( "github.com/astaxie/beego" "github.com/astaxie/beego/context&q ...
- 引入 ServletContextListener @Autowired null 解决办法
public class ScheduleController implements ServletContextListener { @Autowired private ScheduleServi ...
- c#NAudio 录音功能实现
在网上找了很多类似录音教程效果都不好,或根本不能录音,代码由网上借鉴修改(完整实现录音播放功能) 1.首先新建引用类 RecordController public class RecordCont ...
- Centos7yum源配置PID锁定问题
在设置centos7的yum源时,执行 yum clean all 出现PID被锁定的问题: 解决的方法就是: rm -rf /var/run/yum.pid 删除这个文件之后就可以恢复正常.
- rsync 排除指定目录
背景 将Server1上的数据同步到Server2: Server1目录结构: /us_data/yahoo └── qlib ├── calendars ├── dataset_cache ├── ...