自然数的拆分

jck211303 / 2023-07-22 / 原文

#include <bits/stdc++.h>
using namespace std;
int a[1001],n;
void dfs(int p,int c,int s){
    if(s==n){
        cout<<n<<"="<<a[0];
        for(int i=1; i<c; i++)
        cout<<'+'<<a[i];
        cout<<endl;
        return;
    }
    if(s>n) return ;
    for(int i=p; i<n; i++){
        a[c]=i;
        dfs(i,c+1,s+i);
    }
}
int main()
{
    cin>>n;
    dfs(1,0,0);
    return 0;
}