递归 + 搜索
2023-07-27 11:24:42
发布于:浙江
8阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int a[10001]={1},n,total;
int print(int t){
for(int i=1;i<=t-1;i++){
cout<<a[i]<<"+";
}
cout<<a[t]<<endl;
total++;
}
int search(int s,int t){
int i;
for(i=a[t-1];i<=s;i++){
if(i<n){
a[t]=i;
s-=i;
if(s==0) print(t);
else search(s,t+1);
s+=i;
}
}
}
int main(){
cin>>n;
search(n,1);
cout<<n<<endl;
cout<<"total="<<total+1<<endl;
return 0;
}
这里空空如也
有帮助,赞一个