C++ - この高精度階乗演算の原理は何ですか?
黄舟
黄舟 2017-05-16 13:28:11
0
3
714
リーリー

自分の理解のためにコメントを書きたいのですが、途中で書き続けることができません。なぜforの真ん中の3行がそのように書かれているのですか?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(3)
習慣沉默

普通の掛け算の縦計算のようで、特に言うことはありません

いいねを押す +0
左手右手慢动作

リーリー

いいねを押す +0
给我你的怀抱

乗算はintやlonglongを超えるため、高い精度が求められます。
高精度のアイデアは、配列を使用して数値の各桁を保存し、人間による乗算の垂直乗算方法をシミュレートすることです。
a が小さい値から大きい値まで格納されていると仮定して (たとえば、数値 12345、配列は a[1]=5,a[2]= である)、長さ n 倍の数値 x の配列 a を計算する方法を検討できます。 4、a[3]=3、a[4]=2、a[5]=1)。
まず、皆さんは a[1]x%10 ですが、10 の位は何でしょうか? (a[2]x+前の桁の桁上げ)%10
なので、ここで c は桁上げを表します。前の桁の f[j] は、j にループする前は (i-1)! の j 番目のビットを表し、j にループした後は i! の j 番目のビットを表します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート