问题遇到的现象和发生背景
计算乘积(debug)
我的解答思路和尝试过的方法
题目描述
正整数 xx 的阶乘 x!=x(x-1)(x-2)\cdots\times 2\times 1x!=x(x−1)(x−2)⋯×2×1,特殊地,0! = 10!=1。
请你计算 n! \bmod mn!modm 的值。
请找出使下面的程序出错的数据,使用输出调试法确定出错的语句,并用乘法取模定理将其改正。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int fac = 1;
for(int i = 2; i <= n; i++)
fac *= i;
fac %= m;
cout << fac;
return 0;
}
乘法取模定理:(a \times b) \bmod m = ((a \bmod m) \times (b \bmod m)) \bmod m(a×b)modm=((amodm)×(bmodm))modm。
输入格式
输入共一行。
第一行,两个整数 n, mn,m(0 \le n \le 1,000, 2 \le m \le 10,0000≤n≤1,000,2≤m≤10,000)。
输出格式
输出共一行,一个整数,表示 n! \bmod mn!modm。
我想要达到的结果
完成