C++で大きな数の掛け算の筆算をする

投稿者: | 2020年6月25日

大学院の授業で、とても大きな数の掛け算を電卓で行うときの方法を考えよという問題があったので、その方法をC++で実装しました。ぶっちゃけそこまで大きい数を計算するならPython使えばよくね?って思いました。

1.筆算のやり方

数字を任意の桁数で切り分けます。今回は4桁で切り分けています。

また、ブロックごとの演算の結果も4桁ごとに区切ります。上位4桁は10^4で割ったときの商で、下位4桁は10^4で割ったときの余りとして捉えると楽です。

それ以外は小学校で習った掛け算の筆算とやり方は同じです。

2.実装

扱った問題では2数が定数なので、コード内でも定数にしています。

配列の長さなどはstringの長さで決まるようにしているので、定数を変数に変えても動くはずです。

3.お気持ち

Pythonなら(実質)桁数無限だから、計算したいだけならばPythonを使おう。

4.参考文献

はじめての離散数学 – 小倉久和 – 近代科学社(2011)

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください