xjoi 1542 枚举集合 2

题目描述:

输入n,问从 1,2,3,...,n-1,n 中选出若干个数使得他们的和为 n ,有多少种方案。每个数最多可以选3次。

输入格式:

一个数n

输出格式:

一个数表示答案

样例输入1:

2

样例输出1:

2

约定:

1<=n<=10

#include<bits/stdc++.h>
using namespace std;
int ans=0,n;
void dfs(int step,int s){//n指的是这个数选或者不选
    if(step==n+1){
        if(s==n){
            ans++;
        }
        return;
    }
    for(int i=0;i<=3;i++){
        dfs(step+1,s+step*i);
    }
}
int main(){
    cin>>n;
    dfs(1,0);
    cout<<ans;
    return 0;
}

おすすめ

転載: blog.csdn.net/zzxycdy/article/details/121304998