1 条题解

  • 0
    @ 2025-10-8 16:48:18
    #include <bits/stdc++.h>
    using namespace std;
     
    int n, a[55];
    void dfs(int x, int k)
    {
        if(k > 1)
        {
            for(int i=1; i<k; i++) printf("%d+", a[i]);
            printf("%d\n", x);
        }
        for(int i=a[k-1]; i <= x/2; i++)
        {
            a[k] = i;
            dfs(x - i, k + 1);
        }   
    }
    int main()
    {
        scanf("%d", &n);
        memset(a, 0, sizeof(a));
        a[0] = 1;
        dfs(n, 1);
        return 0;
    }
    
    • 1

    信息

    ID
    79
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    297
    已通过
    81
    上传者