負の数の割り算

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)

これで通したけどもうちょっとうまい書き方無いかな…….