負の数は無限ループに陥る
ともかくマイナスをつけるのはここではルール違反なので、−1を先ほどの手順に従って、10進位取り記数法で正しく表してみましょう(図4─5)。
a=−1として、まずは1の位を求めます。−1を10で割った余りは何か。余りというのはそもそも、0~9までの数のどれかでなければなりません。そう考えると、余りは9しかありえませんよね。つまり、−1を10で割ると、−1=−1×10+9なので、商が−1で余りは9だというわけです。「10で割った余り」とは、その数から余りを引いたら10で割り切れるような、0~9までの数のことなのです。
次に10の位ですね。は、−1から先ほどの余りの9を引いて10で割った数です。これもまた−1になりますから、それを10で割ると余りは9。したがって、10の位も9となります。
編 計算を続けなくても分かります。ここからは9の無限ループですね。
文 その通り。10進位取り記数法で数を表そうとするとき、正の自然数だと必ずどこかでアルゴリズムが停止するのですが、負の数だと無限ループに陥ってしまうんです。やっぱり負の数って恐ろしいですよね。
試しに、−1を10進位取り記数法で表したものに1を足してみましょう(図4─5)。縦書きの計算でやってみると、1の位は9+1で10ですから、10の位に1が繰り上がります。そうすると10の位は9+1で10ですから……ここでも0の無限ループが発生するわけです。繰り上がりが永遠に続いてしまう。よって答えは0になり、ちゃんとつじつまが合うんですよ。
