本單元語法速查表
| 語法 | 用途 | 範例/備註 |
|---|---|---|
val = val * K + d |
進制字串 → 整數(高位起累積) | 數值上看 10^{18}:val 用 long long |
x % K、x / K |
整數 → 進制字串(取個位、去個位) | 反覆做到 x 歸零;x = 0 要特判 |
c - '0'、c - 'A' + 10 |
進制位字元 → 數值 | 小寫字母先 toupper 統一(8.5) |
'0' + d、'A' + (d - 10) |
數值 → 進制位字元 | d \ge 10 走字母分支 |
stoi(s, nullptr, K)/stoll(...) |
K 進制字串 → 整數(2 \le K \le 36) | stoll("1A", nullptr, 16) 得 26;大小寫皆可 |
reverse(s.begin(), s.end()) |
把 string/vector 整段前後顛倒 | #include <algorithm> |
vector<int> d; 個位放 d[0] |
大數的標準存法(反向) | d[i] = s[len - 1 - i] - '0'; |
C[i + 1] += C[i] / 10; C[i] %= 10; |
統一進位 | 由低位往高位掃一遍 |
while (C.size() > 1 && C.back() == 0) C.pop_back(); |
去前導零 | 至少留一位,0 才印得出來 |
C[i + j] += (long long)A[i] * B[j]; |
大數乘法的歸戶 | 累加陣列用 vector<long long> |