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