您的位置:首页 > 其它

数字拆解

2015-03-17 11:11 197 查看
//回溯法解决数字拆解的问题
#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
= {0};
Solve(array, N-1,N-1);
return 0;
}




附件:http://down.51cto.com/data/2365502
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  程序 数字拆解