PAT B1002 寫出這個數

2021-09-12 03:56:00 字數 1370 閱讀 5500

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

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

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

yi san wu

b組的簡單題,主要是對字串的處理,題目要求輸入一行數字,計算出每一位數字之和,然後使用拼音輸出這個數。

這裡我的想法是使用a,b,c三個數,存放百位,十位,個位,然後寫了乙個函式out_put,用乙個switch結構把乙個十以內的數字轉換成拼音輸出,具體操作如下

#include

#include

using namespace std;

void

out_put

(int i)

//out_put轉換函式

}int

main()

else

return0;

}

這裡我又又又又拜讀了下柳神的**,從中又學到了很多(所以說真的很推薦柳神的**啊),我一開始也是不稀罕做乙級題,後面發現自己是不對的,因為乙級題雖然很簡單,但是有很多的技巧是非常值得我們學習的,所以在ac完題目之後,仔細想想,或者看一下人家的**,說不定會很有收穫

這裡柳神是採用了乙個字串陣列存放了"ling"到「jiu」,這種思想早就用過了(這樣的話我們就可以不用寫out_put函式了),在這道題目中居然沒想到,真的是可惜。其次我們在解題過程中最大的問題就是難以判斷各位加起來的和究竟是多少位,因為它有可能是兩位,有可能是三位,也可能是一位,然而柳神使用了string標頭檔案中的to_string()函式,可以將乙個數字轉換為字串,這樣我們大量的if和else就沒有使用的必要了,又大大簡化了**量。所以說to_string這樣的工具函式就十分的有用,在以後的解題過程中要常常想到使用這樣的方式。

下面貼柳神的**,(僅供學習,侵刪)

#include

#include

using namespace std;

intmain()

;for

(int i =

0; i < s.

length()

; i++

)sum +

=(s[i]

-'0');

string num =

to_string

(sum)

;for

(int i =

0; i < num.

length()

; i++

)return0;

}

PAT B1002寫出這個數

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

PAT B1002 寫出這個數

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

PAT B 1002 寫出這個數 20

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