100桁の数字が与えられたとしましょう(入力は文字列にすることができます)。その数値%modの値を見つけたいと思います。ここで、modは10 ^ 9+7です。どうすれば答えを得ることができますか。文字列操作を使用して、多数の加算および減算関数をすでに実装しました。
前もって感謝します !
109は-1000000007を法とする-7です。
100桁の数字を右からN
9桁のブロック(0、a 1 、...)に分割します。我々は持っています:
N = a0 + a1*10^9 + a2*10^18 + ...
モジュラスは0-7 * a 1 + 49 *a2- ..です。
たとえば、87564875326485487234854862386245865486238654862をモジュロ1000000007で計算するとします。この数字の文字列を、右から9のブロックに分割します。
ここで、各ブロックを整数に変換し、m = a 0-7 * a 1 + 49 * a 2-323 * a 3 + ...を計算します(ヒント:64ビット整数を使用してください)。
今N = m (mod 1000000007)
。