日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

發布時間:2025/4/5 c/c++ 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT甲级1082 Read Number in Chinese:[C++题解]字符串处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 題目分析
    • 題目來源

題目分析


來源:acwing

分析

從后往前,四位數作為1組來處理。每組單位最多是十百千,組間單位是萬和億。以123456789為例,分成三組為1,2345,6789,下面while循環便是此作用。

//4位一組作為1個數,放進numswhile(n) nums.push_back(n % 10000),n/= 10000;

nums數組中存儲的是倒序:6789,2345,1。

下面使用三個string 數組進行映射:

num1[]:映射成漢語表示,ling,yi,er,... num2[]:組內單位:十百千 num3[]:組間單位:萬億

難點在于對零的處理:

  • 末尾ling去掉
  • 不能有連續個ling

這里寫了一個函數check用來判斷末尾是否是ling

//使用substr庫函數,下面是求s字符串最后5個字符s.substr(s.size()-5)=="ling "

用作讀者參考:要處理的特例舉例:

100000080 讀作: yi Yi ling ba Shi //中間只有1個零,要考慮清楚

ac代碼

#include<bits/stdc++.h> using namespace std;string num1[] ={"ling","yi","er","san","si","wu","liu","qi","ba","jiu" };//判斷末尾是否是0 bool check(string s) {return s.size() >= 5 && s.substr(s.size()-5)=="ling "; }//處理4位數 string work(int n){vector<int> nums;while(n) nums.push_back(n%10) ,n/= 10;string num2[]={"","Shi","Bai","Qian"};//組內單位string res;for(int i = nums.size()-1; i>= 0; i--){int t = nums[i];//如果不是0if(t) res += num1[t]+" ";//轉化為中文讀法//如果是0,并且res末尾不是lingelse if(!check(res)) res += "ling ";// 不是0并且不是最后一個數(單位是個,不加),加上組內單位if(t && i) res += num2[i]+" ";}//去掉末尾零if (check(res)) res =res.substr(0,res.size()-5);return res; }int main(){int n;cin >> n;if(!n) cout<<"ling"<<endl;else{if(n<0) cout<<"Fu ",n= -n;vector<int> nums;string res;string num3[] ={"","Wan","Yi"};//4位一組作為1個數,放進numswhile(n) nums.push_back(n % 10000),n/= 10000;//最多nums中3個數//從高位遍歷for(int i =nums.size()-1;i>=0; i--){//每次取1組數int t =nums[i];if(res.size() && t<1000 && !check(res)) res += "ling ";if(t) res += work(t);//組間單位if(t && i) res += num3[i] +" ";}//去掉末尾零:末尾可能有多個,所以用whilewhile (check(res)) res =res.substr(0,res.size()-5);res.pop_back(); cout<<res<<endl;}}

題目來源

PAT甲級1082 Read Number in Chinese
https://www.acwing.com/problem/content/1570/

總結

以上是生活随笔為你收集整理的PAT甲级1082 Read Number in Chinese:[C++题解]字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲三级久久 | 一区二区日本视频 | 99视频在线精品免费观看2 | 亚洲免费观看高清 | 成人免费看片在线观看 | 中日韩欧美在线观看 | 男生舔女生的屁股 | 日韩国产中文字幕 | 青青草国产一区 | 亚洲理论视频 | 青青草视频免费看 | 成人免费视频国产免费 | 日本视频在线免费观看 | 91香草视频 | 日日碰碰 | 人妻洗澡被强公日日澡电影 | 色老头一区二区三区在线观看 | 婷婷国产 | 天天爱天天色 | 香蕉久久国产 | 性欧美精品男男 | 欧美激情黄色 | 九九热最新视频 | 91美女免费看 | 日韩欧美中文字幕一区 | 永久免费在线视频 | 一级黄色性片 | 美女靠逼app | 天天摸天天做天天爽 | 欧美成人一区在线 | 美女扒开屁股让男人桶 | 三上悠亚在线播放 | 福利视频导航网 | 国产精品国产三级国产aⅴ中文 | 亚洲香蕉中文网 | 另类性姿势bbwbbw | 激情欧美一区二区三区精品 | 99热香蕉 | 春色伊人 | 一级一片免费播放 | 久久福利网站 | 天天摸天天插 | sm乳奴虐乳调教bdsm | 天堂网中文在线 | 69国产视频| 亚洲麻豆 | 国产视频不卡 | 潘金莲激情呻吟欲求不满视频 | 日韩av一区在线 | 国产黄网在线观看 | 96精品视频在线观看 | 欧洲亚洲另类 | 国产精品少妇 | 轮番上阵免费观看在线电影 | 农村黄色片 | 色综合激情网 | 日韩中文字幕在线一区 | 日本乱轮视频 | 女人看黄色网 | 影音先锋国产精品 | 六月丁香婷婷激情 | 久久性生活片 | 一级黄色片a | 日韩欧美成人一区 | 西野翔之公侵犯中文字幕 | 欧美一a一片一级一片 | 中文字幕欧美日韩 | 中文字幕有码无码人妻av蜜桃 | 亚洲国产91 | 日韩av片在线免费观看 | 夜晚福利视频 | 亚洲av乱码一区二区 | 欧美人与动物xxxxx | 看片网址国产福利av中文字幕 | 黑人巨大精品欧美黑白配亚洲 | 日韩av中文在线观看 | 西西人体大胆4444ww张筱雨 | 在线播放一区 | 操日本老妇 | 无码精品一区二区三区在线 | 日本一级吃奶淫片免费 | www.av黄色 | 三区在线观看 | 亚洲男女视频 | 爱爱短视频 | 欧美黄色精品 | 美女久久精品 | 大陆明星乱淫(高h)小说 | 乱色熟女综合一区二区三区 | 伊人伊人鲁 | 成人宗合 | aaa大片十八岁禁止 中文字幕亚洲在线观看 | www.操| 国产91欧美| 色狠狠久久av大岛优香 | 精品成在人线av无码免费看 | 国产精品欧美综合亚洲 | 官场艳妇疯狂性关系 | 亚洲色图欧美在线 |