1.杨辉三角求组合数,最高只能求几千内的组合数。
#include<bits/stdc++.h>
using namespace std;
#define int long long
int C[1005][1005];
signed main()
{//求 1000 以内的组合数 for(int i=0;i<=1000;i++){C[i][0]=C[i][i]=1;for(int j=1;j<i;j++){C[i][j]=C[i-1][j-1]+C[i-1][j];}}//例:求 C[10][5]cout << C[10][5]; return 0;
}
2.递归求组合数 (dfs)
根据数学公式: 进行递推
#include<bits/stdc++.h>
using namespace std;
#define int long long
int dfs(int a,int b){if(b==0 || a==b) return 1;return dfs(a-1,b)+dfs(a-1,b-1);
}
signed main()
{//例:求 组合数 C[n][m]cout << dfs(10,5); return 0;
}