PAT 1002 寫出這個數 C

2021-10-09 22:19:34 字數 1090 閱讀 8420

題目

1002 寫出這個數(20分)

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

輸入格式:

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

​​輸出格式:

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

輸入樣例:

1234567890987654321123456789

輸出樣例:

yi san wu

思路

用乙個二維陣列字元儲存0-9對應的拼音,

char a[10]

[5]=

;

用string類建立乙個字串s讀入輸入的數字,因為輸入的數字太大,只能用字元型別

然後對字串遍歷累加,

對累加的值sum進行模10運算,取最後一位,放入乙個棧stk中(因為輸出的拼音從高位開始)

再對sum自除以10,重複直到取完。

然後根據不斷出棧,輸出棧頂元素數字對應的拼音。注意最後乙個拼音不應該有空格。

**

#include

#include

#include

using

namespace std;

intmain()

;for

(int i =

0; i length()

; i++

)while

(sum!=0)

while

(stk.

size()

!=1)//留最後乙個元素特殊輸出

cout << a[stk.

top()]

;//最後乙個拼音不帶空格

return0;

}

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...