标签:数字拆解
//回溯法解决数字拆解的问题 #include<iostream> using namespace std; const int N = 6; void OutPut( int* a, int N ) { for( int i = N-1; i > 0; i-- ) { for( int j = 0; j < a[i]; j++ ) cout<<i<<" "; } cout<<endl; } void Solve(int* a, int t, int sum ) { if( sum == 0) OutPut(a, N ); else { if( t == 0 ) return; else { if( sum - t >=0 ) { a[t]++; Solve(a, t, sum-t); a[t]--; } Solve(a, t-1, sum); } } } int main() { int array[N] = {0}; Solve(array, N-1,N-1); return 0; }
标签:数字拆解
原文地址:http://8734514.blog.51cto.com/8724514/1621379