PTA乙级-1002 写出这个数
2026/4/14 17:40:23 网站建设 项目流程

1002 写出这个数

  • 1002 写出这个数
    • 一、题目基础信息
    • 二、完整可运行代码
    • 三、核心代码解析
      • 1. 输入处理:`string n; cin >> n;`
        • (1)代码含义
        • (2)关键疑问:为什么不用整数类型(int/long long)?
      • 2. 求和核心:`const string& numStr` 与 `sum += c - '0'`
        • (1)`const string& numStr` 解析
        • (2)`sum += c - '0'` 解析
          • 核心问题:字符与数字的本质区别
          • 转换逻辑(数学规律)
          • 反面例子:直接用字符加减的错误
      • 3. 格式输出:`if (i != 0) { cout << " "; }`
        • (1)核心逻辑:“非首位前加空格”
        • (2)关键疑问:为什么不“拼音后加空格”?
      • 4. 拼音映射:`digitToPinyin(digit)`
    • 四、测试用例完整执行流程
    • 五、核心知识点总结

1002 写出这个数

一、题目基础信息

  • 分数:20
  • 作者:CHEN, Yue
  • 单位:浙江大学
  • 核心要求:读入超大正整数 ( n )(( n < 10^{100} )),计算其各位数字之和,用汉语拼音逐位输出该和;拼音间用 1 个空格分隔,最后一个拼音后无空格。
  • 输入样例:1234567890987654321123456789
  • 输出样例:yi san wu

二、完整可运行代码

#include<iostream>#include<string>usingnamespacestd;// 函数1:计算超大数字符串的各位数字之和(单一职责:求和)intcalculateDigitSum(conststring&numStr){intsum=0;for(charc:numStr){sum+=c-'0';// 字符转数字:'0'的ASCII码为48,c-'0'得到对应整数值}returnsum;}// 函数2:将单个数字转换为对应的汉语拼音(单一职责:数字转拼音)stringdigitToPinyin(intdigit){// 下标0-9对应数字0-9的拼音,直接通过下标访问,高效简洁string pinyin[]

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询