負の数の割り算
Pythonで割り算に負の数を含めるとC/C++と違う挙動をする.
:::sh
$ python -c "print 4//(-3)"
-2
$ gcc -xc -
int main() {
printf("%d\n", 4 / (-3));
}
$ ./a.out
-1
pythonは負の無限大方向に丸めてくれる. これは数学的に望ましいらしい(The History of Python.jp)のだが, Smart Calculator(AOJ: 0109) を解いてて詰まった.
:::python
abs(x) / abs(y) * cmp(y * x, 0)
これで通したけどもうちょっとうまい書き方無いかな…….