https://pintia.cn/problem-sets/994805342720868352/problems/994805385053978624
写的太垃圾,不想详细说,等有时间再写一个简洁的方法。
最讨厌的就是这个模拟题。
说一下我的处理空格的一些想法,直接用字符串连接,然后字符串流输出,这样可以处理多余的或少的空格。

#include<bits/stdc++.h>
using namespace std;
string s;
string a[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string b[10]={"ling","","Shi","Bai","Qian","Wan","Shi","Bai","Qian","Yi"};
//              0    1   10    100    1000 10000
bool flag1,flag2,flag3,flag22,flag33;
string ans;
int main(void)
{cin>>s;if(s=="0") {puts("ling");return 0;}if(s[0]=='-')  ans+="Fu ",s=s.substr(1);while(s.size()<9) s="0"+s;string temp=s.substr(0,1);if(temp[0]!='0') ans+=" "+a[temp[0]-'0']+" Yi ",flag1=1;temp=s.substr(1,4);bool index=0;flag22=flag1;for(int i=0,j=4;i<4;i++,j--){int u=temp[i]-'0';if(!u) index=1;if(u&&index&&flag22&&temp[i-1]=='0') ans+=" ling ";if(u) ans+=" "+a[u]+" "+b[j]+" ",flag22=1,flag2=1;}if(flag2) ans+=" Wan ";temp=s.substr(5,4);index=0;flag33=flag22;for(int i=0,j=4;i<4;i++,j--){int u=temp[i]-'0';if(!u) index=1;if(u&&index&&flag33&&temp[i-1]=='0') ans+=" ling ";if(u) ans+=" "+a[u]+" "+b[j]+" ",flag33=1;}string x; stringstream l(ans);vector<string>ve;while(l>>x) ve.push_back(x);for(int i=0;i<ve.size();i++){cout<<ve[i];if(i!=ve.size()-1) cout<<" ";}return 0;
}

1082 Read Number in Chinese (25 分)【难 / 模拟 字符串】相关推荐

  1. PAT甲级1082 Read Number in Chinese:[C++题解]字符串处理

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析 从后往前,四位数作为1组来处理.每组单位最多是十百千,组间单位是万和亿.以123456789为例,分成三组为1,2345,6789,下 ...

  2. 【PAT甲】1006 Sign In and Sign Out (25分)循环模拟

    problem 1006 Sign In and Sign Out (25分) At the beginning of every day, the first person who signs in ...

  3. 【CCCC】L2-029 特立独行的幸福 (25分),模拟题,set用法

    problem L2-029 特立独行的幸福 (25分) 对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 ...

  4. 【CCCC】L2-028 秀恩爱分得快 (25分),模拟题

    problem L2-028 秀恩爱分得快 (25分) 古人云:秀恩爱,分得快. 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度.如果一张照片上出现了 K 个人, ...

  5. 【CCCC】L2-027 名人堂与代金券 (25分),模拟水题

    problem L2-027 名人堂与代金券 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合 ...

  6. 1082 Read Number in Chinese

    题目 题意: 给定一个不超过9位的整数,你应该用传统的中文方式阅读它~ 如果是负的,首先输出"Fu". 例如,-123456789被读作"Fu yi Yi er Qian ...

  7. PAT甲级1082 Read Number in Chinese(JAVA版)

    本题考查 字符串处理 思路 除了0之外 数字1-9分别对应其小写拼音,另外当 "数组长度 - 数字所在数组索引" 单位 9 Yi 8.4 Qian 7.3 Bai 6.2 Shi ...

  8. 【PAT甲级 - 1028】List Sorting (25分)(模拟,排序)

    题干: Excel can sort records according to any column. Now you are supposed to imitate this function. I ...

  9. 【PAT - 甲级1009】Product of Polynomials (25分)(模拟,细节)

    题干: This time, you are supposed to find A×B where A and B are two polynomials. Input Specification: ...

最新文章

  1. CentOS 下 rpm包与 yum 安装与卸载
  2. 为自增(++)自减(--)运算符正名
  3. QT的QDBusPendingCallWatcher类的使用
  4. 使用malloc创建头结点的坑
  5. 乱码 设置界面_和平精英:压轴更新后BUG频出,设置界面崩盘,界面全白变乱码...
  6. 高速连传与LORA的区别和优势
  7. 【转载】JAVA的泛型和C++的模板的区别与联系
  8. Java实现对称加密算法-AES加解密
  9. 操作系统原理(六)设备管理
  10. Drop user 报ORA-00600 [KTSSDRP1]
  11. 服务器主板能插几块硬盘,如何知道自己的主板最大支持多少的硬盘啊
  12. 【MiniSTM32_HAL库版本_V1.0】实验1跑马灯代码解释(超详细,适合初识STM32的朋友)
  13. 爬取企业信息-企业信用信息查询系统-天眼查爬虫
  14. unbuntu20.04安装mysql5.7
  15. 测试体质的软件有哪些,有哪些APP可以测体脂?测体脂率APP分享
  16. ssd的smt_SMT 工厂基础参数要求
  17. VCS(DVE)调试
  18. PHP 使用TCPDF插件生成pdf以及pdf的中文处理
  19. [BZOJ 1778][Usaco2010 Hol]Dotp 驱逐猪猡
  20. 顿号、分号;这些标点符号的用法

热门文章

  1. 《精通Windows API-函数、接口、编程实例》——第4章文件系统
  2. dedecms织梦修改标题默认长度
  3. Laravel中一些要记住 的写法
  4. (原创)7-1 银行业务队列简单模拟 (30 分)
  5. bzoj2424 订货
  6. Mysql常用命令详解
  7. ESP32实验板linux环境中下载固件报错解决办法
  8. ble之Transmit window offset and Transmit window size
  9. c语言八大数据基本类型,C语言中基本的数据类型有哪些
  10. 区块链BaaS云服务(17)纸贵科技Z-BaaS平台“跨链”