当前位置:网站首页>PAT乙级 1002 写出这个数
PAT乙级 1002 写出这个数
2022-08-01 04:38:00 【早睡身体好hh】
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384
题目描述
读入一个正整数 n n n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式
每个测试输入包含 1 1 1 个测试用例,即给出自然数 n n n 的值。这里保证 n n n 小于 1 0 100 10^{100} 10100。
输出格式
在一行内输出 n n n 的各位数字之和的每一位,拼音数字间有 1 1 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例
1234567890987654321123456789
输出样例
yi san wu
题目解析
输入的 n 最大为 1 0 100 10^{100} 10100,超出了 int 和 long long 的表示范围,所以 n 要用字符串存储。
假设输入的 n 为 12345678 12345678 12345678,如下图所示。

那么 n 的各位数字之和 sum 即为 36 36 36,我们将 sum 的 个位 ~ 最高位 依次存储到 digits[0] ~ digits[cnt-1] 中。

最后从 sum 的最高位(即digits[cnt-1])开始输出,注意要单独输出 sum 的个位(末尾不加空格)。
C/C++代码
#include <iostream>
#include <string>
using namespace std;
string py[10] = {
"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
int digits[10];
int main()
{
// 输入大整数n
string n;
cin >> n;
// 计算n的各位数字之和sum
int sum = 0;
for (auto x : n)
{
sum += x - '0';
}
// 将sum的个位~最高位依次存储到digits[0]~digits[cnt-1]中
int cnt = 0;
while (sum)
{
digits[cnt++] = sum % 10;
sum /= 10;
}
// 从sum的最高位(即digits[cnt-1])开始输出
for (int i = cnt - 1; i > 0; i--)
{
cout << py[digits[i]] << " ";
}
// 单独输出sum的个位(末尾不加空格)
cout << py[digits[0]] << endl;
return 0;
}
边栏推荐
猜你喜欢
随机推荐
基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置
Dynamic Programming 01 Backpack
软件测试基础理论知识—用例篇
Risk strategy important steps of tuning method
typescript23-tuple
Typescript20 - interface
Visual Studio提供的 Command Prompt 到底有啥用
IJCAI2022 | Hybrid Probabilistic Reasoning with Algebraic and Logical Constraints
typescript25 - type assertion
JS new fun(); class and instance JS is based on object language Can only act as a class by writing constructors
Immutable
Interview Blitz 69: Is TCP Reliable?Why?
Message queue MySQL table for storing message data
Valentine's Day Romantic 3D Photo Wall [with source code]
Input input box cursor automatically jumps to the last bug after the previous input
UE4 模型OnClick事件不生效的两种原因
typescript23-元组
Software Testing Interview (3)
[kali-information collection] enumeration - DNS enumeration: DNSenum, fierce
High Numbers | 【Re-integration】Line Area Score 880 Examples









