mod を練習できる問題!
問題概要
正の整数 が与えられる。
を 1000000007 で割った余りを求めよ。
考えたこと
まず「1000000007 で割った余り」といったものを考えるための、基本的な知見を次の記事にまとめた。
結論として、 を 1000000007 で割った余りを求めたいとき、次のようにすれば良いのだ。
- を 1000000007 で割った余りで置き換える
- を 1000000007 で割った余りで置き換える
- を計算して、その値を 1000000007 で割った余りを求める
今回も の値をそのように求めればよい。
コード
#include <bits/stdc++.h> using namespace std; const int MOD = 1000000007; int main() { long long N; cin >> N; long long res = 1; for (long long i = 1; i <= N; i++) { res = (res * i) % MOD; } cout << res << endl; }