自然数拆分(深搜)
自然数拆分(深搜)
1944864971 发表于2年前
自然数拆分(深搜)
  • 发表于 2年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

/*
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3104
回溯法

*/

include

include

include

include

include

include

int n;
using namespace std;
int a[36];
int vis[36][36];
void dfs(int cur,int sum)
{

if(sum==0&&cur>2)
{
    printf("%d=%d",n,a[1]);
    for(int i=2; i<cur; i++)
        printf("+%d",a[i]);
    printf("\n");
    return;
}

for(int i=1; i<=sum; i++)
{
    if( i>=a[cur-1])
    {

        a[cur]=i;
        dfs(cur+1,sum-i);//每用掉一个数后,就将总值减去这个数,然后在剩下的数中在进行分割;
                                    //不用做标记因为在同一组数据中可以重复使用数据;
    }
}

}
int main()
{
while(~scanf("%d",&n))
{
memset(vis,0,sizeof(vis));
memset(a,0,sizeof(a));
dfs(1,n);
}
return 0;
}

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 57
码字总数 0
×
1944864971
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: