1. 程式人生 > >數學—排列組合

數學—排列組合

#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);
}