2020年3月15日日曜日

[Ruby] 負の数の商と余り

同僚もすなるatcorderといふものを、私もしてみむとてするなり。
ということで、同僚が勧めてるので、atcorderをやってみることにした。
Rubyを使って解いてみたけど、言語によって計算の違いがあるのを知らなかった。

C++の下記のコード
#include 
using namespace std;

int main() {
  cout << -1 / 3 << endl;
  cout << -1 % 3 << endl;
}
出力は、
0
-1

Rubyの下記のコード
print "#{-1 / 3}\n"
print "#{-1 % 3}\n"
出力は、
-1
2

借金一万円を3人で割ると、
C++だと、一人あたり0円返して、借金1万円が残る。
Rubyだと、一人あたり1万円返して、2万円が残る。

普段使ってても意外とちゃんと理解してないことあるなという気づき。