自然数拆分(计蒜客)

 

 1 #include<iostream>
 2 using namespace std;
 3 int a[30];
 4 void dfs(int n,int index, int sindex,int sum)
 5 {
 6     if(sum==n)
 7     {
 8         cout<<n<<"="<<a[0];
 9         for(int i=1;i<sindex;++i)
10         {
11               cout<<"+"<<a[i];
12         }
13         cout<<endl;
14         return ;
15     }
16     if(sum>n)
17         return ;
18     for(int i=index; i<n; ++i)
19     {
20         if(sum+i<=n)
21         {
22             a[sindex]=i;
23             dfs(n,i,sindex+1,sum+i);
24         }
25     }
26 }
27 int main()
28 {
29     int n;
30     cin>>n;
31     dfs(n,1,0,0); 
32     return 0;
33 }

猜你喜欢

转载自www.cnblogs.com/caxi/p/12535192.html