数学—排列组合

#include <stdio.h>
#include <math.h>
#include<functional>
#include<bits/stdc++.h>
using namespace std;

int A(int n, int r)
{//排列数:n!/(n-r)!->n*...(n-r+1);
    int ans = 1;
    for (int i = 0; i <r; i++)
    {
        ans *= (n - i);
    }
    return ans;
}
int C(int n, int r)
{/*组合数:n!/(n-r)!*r!-> n*(n-1)*...(n-r)/r!
C(n,r)=c(n,n-r)*/
    int ans = 1;
    for (int i = 1;i<=r;i++)
    {
        ans *= (n - i + 1) / i;
    }
    return ans;
}
int main()
{
    cout << A(5, 2)<<endl;
    cout << C(5, 2);
}

猜你喜欢

转载自blog.csdn.net/qq_31741481/article/details/82050959