运行有问题,求助

P2404 自然数的拆分问题

暂时没看出来,你看一下我的吧 ```c #include<bits/stdc++.h> using namespace std; int ans[105],sum = 0,n; void dfs(int x){ if(sum == n){ cout<<ans[1]; for(int i = 2;i <= x-1;i++){ cout<<"+"<<ans[i]; } cout<<endl; return ; } for(int i = ans[x-1];i <= n - sum;i++){ if(i == 0){ continue; } if(i == n){ continue; } ans[x] = i; sum += i; dfs(x+1); ans[x] = 0; sum -= i; } } int main(){ cin>>n; dfs(1); return 0; } ```
by JGBY00 @ 2023-07-23 20:20:49


。。。康康我的吧 ``` #include <bits/stdc++.h> using namespace std; int n,m; int A[101010]; void dfs(int now,int sum,int cnt){ if(sum==n){ for (int i=1;i<cnt;i++)cout<<A[i]<<"+"; cout<<A[cnt]<<"\n"; m++; } if(now>n/2+1)return ; for (int i=now;i<=n;i++){ if(sum+i<=n){ A[cnt+1]=i; dfs(i,sum+i,cnt+1); } } } int main(){ cin>>n; for (int i=1;i<=n/2;i++){ A[1]=i; dfs(i,i,1); } // cout<<"There are "<<m<<" ways to add numbers together that make the number "<<n<<"\n"; return 0; } ```
by BensonChen @ 2023-10-13 08:41:23


|