Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

令和5年度春期 応用情報午後問3

令和5年度春期 応用情報技術者試験(AP)の午後問題3は、

に関する問題でした。

多倍長整数の加減算については、学生時代の課題で取り組んだ記憶があるのですが、乗算についてはこんな手法があるんですね。

問題を解くだけでも勉強になるのですが、自分で作って動かしてみると、より一層理解が深まるような気がします。

プログラム例(r05h_ap_pm3.py)

問題では配列の添字は1から始めていましたが、0から始めています。

実行結果

% python
Python 3.9.16 (main, Mar  8 2023, 04:29:44)
[Clang 14.0.6 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from r05h_ap_pm3 import Bignum
>>> val1 = Bignum("1234")
>>> val2 = Bignum("5678")
>>> val1.times(val2) # 問題文の数字で計算
'7006652'
>>> val3 = Bignum("123456789")
>>> val4 = Bignum("56789")
>>> val3.times(val4)
'7010987590521'
>>> 123456789*56789 # 検算
7010987590521       # 自作Bignumで計算した結果と同じ!

関連