pat 1002 寫出這個數 20

2021-08-04 13:46:48 字數 1913 閱讀 6168

時間限制

400 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

作者chen, yue

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

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

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

輸入樣例:

1234567890987654321123456789
輸出樣例:

yi san wu
c/c++:

#include #include using namespace std;

int main ()

i=0;

while ( b != 0)

for (int y = i-1;y >= 0;y--)

if (y != 0)

cout << " ";

}}

用c/c++寫,其實難度不大,由於資料位數比較大,將其變成字串,然後從字串轉化成數字,及減去'0'。

然後相加,分離位數,每一位轉換成漢語拼音輸出,注意空格的要求。

python:

num = raw_input()

d =

sum = 0

for i in range(len(num)):

sum = int(num[i])+sum

sum = str(sum)

for i in range(len(sum)):

if sum[i] == '0':

print "ling",

if sum[i] == '1':

print "yi",

if sum[i] == '2':

print "er",

if sum[i] == '3':

print "san"

if sum[i] == '4':

print "si",

if sum[i] == '5':

print "wu",

if sum[i] == '6':

print "liu",

if sum[i] == '7':

print "qi",

if sum[i] == '8':

print "ba",

if sum[i] == '9':

print "jiu",

用python寫更簡單,直接字串與數字之間型別轉化,注意print的輸入輸出不換行的用法,在print 「***」之後加乙個「,」。(python 2.7)

**已經測試通過

過了一年,重新看一看當初的**,感覺太醜陋了。

重新用python3寫了一次。

num = input()

lst = ['ling','yi','er','san','si','wu','liu','qi','ba','jiu']

sum = 0

for i in range(len(num)):

sum = int(num[i])+sum

sum = str(sum)

for i in sum[:-1]:

print (lst[int(i)],end = ' ')

print(lst[int(sum[-1])])

依然是最後的格式輸出有點煩,最後乙個輸出重新寫了一句。

PAT 1002 寫出這個數 20

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

PAT 1002 寫出這個數 20

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

PAT 1002 寫出這個數 20

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行...