ac代码如下
#include<bits/stdc++.h>
using namespace std;
int a[15],b[15];
bool vis[15];
int n,sum,flag;
bool jg(int arr[], int num){
int temp = n;
while(temp--){
for(int i=1;i<=temp;i++){
arr[i] = arr[i]+arr[i+1];
}
}
return arr[1] == num;
}
void dfs(int cur){
if(cur > n && !flag){
memcpy(b,a,sizeof(a));
if(jg(b, sum)){
flag = 1;
for(int i=1;i<=n;i++) printf("%d ",a[i]);
}
return ;
}else{
for(int i=1;i<=n;i++){
if(!vis[i]){
a[cur] = i;
vis[i] = true;
dfs(cur+1);
vis[i] = false;
}
}
}
}
int main(){
cin>>n>>sum;
dfs(1);
return 0;
}