#include<bits/stdc++.h>
using namespace std;
int n;
int ans[10001]={1};
int dfs(int k,int s){
if(s==0){
for(int i=1;ans[i]!=0;i++){
if(ans[i]==n) return 0;
if(i==1){
cout<<ans[i];
}
else cout<<'+'<<ans[i];
}
cout<<endl;
return 0;
}
for(int i=ans[k-1];i<=s;i++){
ans[k]=i;
dfs(k+1,s-i);
ans[k]=0;
}
}
int main(){
cin>>n;
dfs(1,n);
return 0;
}
输出答案是对的,但为啥是RE啊?
有没有大佬帮帮我。