码迷,mamicode.com
首页 > 其他好文 > 详细

数字拆解

时间:2015-03-17 14:28:09      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:数字拆解

//回溯法解决数字拆解的问题
#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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!