PAT 1002 寫出這個數(很水)

2021-09-22 01:46:13 字數 1070 閱讀 2442

題意:讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。 輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10^10

讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。

輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。

輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。

說實話,這道題很水,但是對於剛接觸程式設計的學者來說,作為練習還是可以的。因為要求學者的邏輯思維要清楚,這點很重要,不管是簡單的,還是複雜的程式,都需要我們清晰的梳理自己的思維,才不會出現「明明樣例都過了,為什麼提交就wa呢」?出現這種情況,大部分原因是我們的邏輯不夠清晰,不夠完整。

這道題考的是將數字的各位數字以拼音的形式輸出來。

第一步:分解數字;

對於剛入門的學者可能會想到分情況討論;這個方法在這道題可以用,因為n不超過10的100次方,所以最大的sum不會超過909,;但是我不推薦大家用這種方法,因為它並不通用,當乙個數的值更大的時候,你分類的情況就更多了,**冗長,也不易於發現問題。

其實我們直接用乙個while迴圈就可以解決。(注意sum為0時要特殊處理)

if(sum==0)

cout<0; j--)

cout第二步:將數字以拼音形式呈現;

很簡單,直接用乙個字串陣列解決,

string a[10]= ;

其實這種用常量陣列實現對應關係的方法很常見,大家可以多學學!

為了便於道友們向我諮詢問題,特意開設了乙個免費的知識星球——captianxue,星球提供學習、理財、生活、職場等各類文章和免費答疑!!

直接上**:

#include#include#includeusing namespace std;

string a[10]= ;

int main()

return 0;

}

PAT1002 寫出這個數

讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098765...

PAT 1002 寫出這個數

讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098765...

PAT 1002 寫出這個數

讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098765...