過去ログ

doba
#30813 ダンディ海野さん

十の倍数=二と五の倍数であり、二の倍数かどうかは
二進法で一番下のケタが0かどうかを見ればよいので、
あとは、五の倍数の見分け方ですね。
例えば、次のような考え方はどうでしょう。
(以下、数字は全部二進数です。)

与えられた二進数を、下から二桁ずつに区切ります。
それを、右からでも左からでもよいですが、交互に符号を入れ替えて足していきます。
(つまり、xx−xx+xx−xx+…というように、引くと足すを交互に繰り返します。)
その結果から符号を取ったものが三桁以上ならば、同じ操作を繰り返します。
最終的に0になれば、与えられた二進数は101(=五)の倍数です。

例えば、111001001111001001101100110
であれば、
1/11/00/10/01/11/10/01/00/11/01/10/01/10
と区切って、
1-11+00-10+01-11+10-01+00-11+01-10+01-10=-1010
符号を取って四桁なので、さらに
10/10
と区切ると
10-10=0
なので、五の倍数と言えます。

これは、十進法の十一の倍数の判定法を、四進法に応用して、
それを二進数で表現しただけです。
   9月22日(土) 16:42:44     30814

過去問題一覧へ戻る