演算法提高 階乘差
阿新 • • 發佈:2018-12-12
問題描述
給定n和m以及p,保證n>=m,求(n!-m!)對p取餘的結果。
輸入格式
一行三個正整數n,m,p。
輸出格式
一行一個非負整數表示結果。
樣例輸入
3 2 10
樣例輸出
4
資料規模和約定
n,m<=20,p<=10000.
#include<iostream> #include<stdio.h> #include<algorithm> #include<math.h> #include<string> #include<string.h> #include<vector> #include<map> using namespace std; int p; long long fac(int num){ long long sum=1; if(num <= 1){ return 1; } sum = num*fac(num-1); return sum; } int main(){ long long n, m; cin>>n>>m>>p; n = fac(n); m = fac(m); cout<<(n-m)%p; return 0; }