问题标题: 酷町堂:1519WA80,请各位指点

0
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
已采纳
丁浩然
丁浩然
新手光能
新手光能

你改成long long 试试?

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
我要回答