1. 程式人生 > >演算法提高 階乘差

演算法提高 階乘差

問題描述

  給定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;
}