語法書 / AA 競程語法書 上冊 / 附錄 / H. 常見算術轉型速查表

H. 常見算術轉型速查表

運算式在計算前,C++ 會先決定「用什麼型態去算」。這件事會影響整數除法、整數溢位,以及最後答案的型態。

運算式 計算時使用的主要型態 結果重點
int / int int 整數除法,小數部分直接捨去
int % int int 取餘數,只能用整數型態
int + long long long long int 會先轉成 long long 再算
long long * int long long 乘法用 long long

H-1. 最常見陷阱:左邊型態不會救右邊運算

long long x = 100000 * 100000;     // 右邊先用 int 相乘,已經溢位
long long y = 100000LL * 100000;   // 有一邊是 long long,乘法用 long long

重點:= 左邊的 long long 只決定最後要把結果存到哪裡,不會讓右邊的 100000 * 100000 自動改用 long long 計算。