1629. 按鍵持續時間最長的鍵
738
2025-03-31
PATA1001 A+B Format
PATA1001 A+B Format
Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits)
Sample Input:
-1000000 9
Sample Output:
-999,991
主要的工作是對輸出的結果進行處理,怎么樣使得逗號正確的分隔是關鍵。
我們可以使用 to string 將 A+B 的數字結果轉化為字符串。
按照題意去用逗號分隔字符串。
to_string 的用法:to_string, 推薦查閱官方文檔,表述清晰
#include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if ((i + 1) % 3 == len % 3 && i != len - 1) cout << ",";
1
2
上面這段可能不好理解,接下來我試著解釋清楚
我們用 len % 3 將這個字符串里的字符分為 3 個一組。這個余數的數值代表著三個一組多出來了幾個。我們從右邊往左邊 3 個一組開始分。分到最左邊,要么剛剛好,要么多了1個或者兩個。
如果剛剛好,那么第一個逗號的位置應該是,字符串從左往右數,第 **3** 個數值后面,也就是字符串下標為 2 的位置,后面的逗號位置就是前一個逗號位置往后推 3 個。
如果余 1 ,那么第一個逗號的位置應該是,字符串從左往右數,第 **1** 個數值后面,也就是字符串下標為 0 的位置,后面的逗號位置就是前一個逗號位置往后推 3 個。
如果余 2 ,那么第一個逗號的位置應該是,字符串從左往右數,第 **2** 個數值后面,也就是字符串下標為 1 的位置,后面的逗號位置就是前一個逗號位置往后推 3 個。
這樣判斷條件 (i + 1) % 3 == len % 3 就出來了。
然而,字符串末尾肯定是不能加逗號的。
所以我們要加上一句 i != len - 1
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。