0
已解决
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,r,sum=1,index;
int main() {
cin>>n>>r;
index=n;
for(int i=1;i<=r;i++) {
sum*=index;
index--;
}
index=r;
for(int i=1;i<=r;i++){
sum/=i;
}
cout<<sum;
return 0;
}
这题我就是直接套的排列组合模板C(n)(r)=A(n)(r)/A(r)(r)
只求错误原因,不求代码
0
0
0
抱歉,我实在看不出错误原因,思路如下:
用搜索与回溯来做组合,从n个不同的元素中,任取m(m≤n)个元素为一组,叫作从n个不同元素中取出m个元素的一个组合。我们把有
关求组合的个数的问题叫作组合问题。
void search(int t)
{
int i;
if(t>r) {
total++;
return;
}
for(int i=1; i<=n; i++){
if(!b[i]&&i>a[t-1]||t==1)
{
a[t]=i;
b[i]=true;
search(t+1);
a[t]=0;
b[i]=false;
}
}
}
后面是输出。
0
0
