自然数的拆分

#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;
}

 

posted @ 2023-07-22 10:52  siuuuuuuuu  阅读(61)  评论(0)    收藏  举报