2 solutions

  • 0
    @ 2024-7-9 11:56:55
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1010;
    int a[N];
    int ans=0;
    int n;
    void dfs(int u,int start,int sum)
    {
        if(sum==n)
        {
            ans++;
            cout<<sum<<"="<<a[0];
            for(int i=1;i<u;i++)
            {
                cout<<"+"<<a[i];
            }
            cout<<endl;
            return ;
        }
        for(int i=start;i+sum<=n;i++)
        {
            a[u]=i;
            dfs(u+1,i,i+sum);
        }
    }
    int main()
    {
        cin>>n;
        dfs(0,1,0);
        return 0;
    }
    
    
    • 0
      @ 2024-3-31 15:12:32
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1010;
      int a[N];
      int ans=0;
      int n;
      void dfs(int u,int start,int sum)
      {
          if(sum==n)
          {
              ans++;
              cout<<sum<<"="<<a[0];
              for(int i=1;i<u;i++)
              {
                  cout<<"+"<<a[i];
              }
              cout<<endl;
              return ;
          }
          for(int i=start;i+sum<=n;i++)
          {
              a[u]=i;
              dfs(u+1,i,i+sum);
          }
      }
      int main()
      {
          cin>>n;
          dfs(0,1,0);
          return 0;
      }
      
      • 1

      Information

      ID
      234
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      # Submissions
      21
      Accepted
      10
      Uploaded By