rqnoj-73

#include<iostream>
using namespace std;
int sum=-1;
void dfs(int count,int up)//剩余人数,上一层人数
{
    if(count==0)
    {
        sum++;
        return ;
    }
    if(up>count)
        return ;
    for(int k=up+1;k<=count;++k)
        dfs(count-k,k);
}
int main()
{
    int n;
    cin>>n;
    dfs(n,0);
    cout<<sum<<endl;//不包含全部站成一排的情况,即n
    return 0;
}

你可能感兴趣的:(rqnoj-73)