又来发博客啦!!!
收点钱没问题吧,我要买MC.JAVE
有k种水果,每种水果数量无限量,但同种水果都是一模一样的。
现在要从中取 r ( r ≥ k ) 个水果,要求每种水果都有,问有多少种取法?
输入格式
一行2个正整数 k 和 r
1 ≤ k ≤ r ≤ 20
输出格式
一行一个整数
输入/输出例子1
输入:
3 5
输出:
6
这里讨论杨辉三角比较高级,摆脱高精度的困扰
#include<bits/stdc++.h>
#pragma GCC optimize(1)//GCC优化
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
using namespace std;
int c[25][25];
void init(){//杨辉三角
c[0][0]=1;
for(int i=1;i<=20;i++){
c[i][0]=1;
for(int j=1;j<=i;j++)
c[i][j]=c[i-1][j]+c[i-1][j-1];
}
}
int main(){
ios::sync_with_stdio(false);//cin,cout优化
cin.tie(0);
cout.tie(0);
init();
int k,r;
cin>>k>>r;
cout<<c[r-1][k-1];
return 0;
}