Permutation Coefficient

int nPr(int n, int r, vector<vector<int>> &savedResult) {
    if(r == 0)
        return 1;
    
    if(n == 0)
        return 0;
    
    if(savedResult[n][r])
        return savedResult[n][r];
    
    return savedResult[n][r] = 
        nPr(n - 1, r, savedResult) 
        + r * nPr(n - 1, r - 1, savedResult);
}

int P(int n, int r) {
    vector<vector<int>> savedResult(n + 1, vector<int>(r + 1));
    return nPr(n, r, savedResult);
}

Last updated