满分简便解法:1002 写出这个数 (20分)
生活随笔
收集整理的這篇文章主要介紹了
满分简便解法:1002 写出这个数 (20分)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
立志用更少的代碼做更高效的表達(dá)
Pat乙級(jí)題解匯總——>傳送門(mén)
讀入一個(gè)正整數(shù) n,計(jì)算其各位數(shù)字之和,用漢語(yǔ)拼音寫(xiě)出和的每一位數(shù)字。
輸入格式:
每個(gè)測(cè)試輸入包含 1 個(gè)測(cè)試用例,即給出自然數(shù) n 的值。這里保證 n 小于 10100
?? 。
輸出格式:
在一行內(nèi)輸出 n 的各位數(shù)字之和的每一位,拼音數(shù)字間有 1 空格,但一行中最后一個(gè)拼音數(shù)字后沒(méi)有空格。
輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
我的解法:
1、數(shù)字對(duì)應(yīng)拼音的常量數(shù)組
2、輸入后按位數(shù)拆分,輸出對(duì)應(yīng)的拼音, 存入vector
3、逆序輸出vector
代碼展示
#include<iostream> #include<vector> using namespace std; string ss[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; vector<string>v; void zhuan(long long num) {int T = 0;while(num) {int len = num%10;if(T != 0) putchar(' ');v.push_back(ss[len]);num /= 10;} } int main() {string s; cin>>s;int len = s.length();long long num = 0;for(int i = 0; i < len; i++) {num += (long long)(s[i]-'0');}zhuan(num);int len1 = v.size();for(int i = len1-1; i >= 0; i--) {if(i != len1-1) putchar(' ');cout << v[i];} return 0; }每日一句
勝敗乃兵家常事,失敗并不可怕,可怕的是心氣兒敗了。
總結(jié)
以上是生活随笔為你收集整理的满分简便解法:1002 写出这个数 (20分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 极简代码:害死人不偿命的(3n+1)猜想
- 下一篇: 简便解法:1004 成绩排名 (20分)