您的位置:首页 > 其它

PTA-整数分解为若干项之和

2017-03-09 16:53 218 查看
点击打开题目链接~

#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>

using namespace std;
int n;
int sum;
int s[64];
int top=-1;
int Count=0;

void dfs(int x)
{
if(sum==n)//输出结果
{
Count++;
cout<<n<<"=";
for(int i=0;i<top;i++)
{
cout<<s[i]<<"+";
}
if(Count%4==0||s[top]==n)//当输出为此行第四个结果或者输出为n=n时
cout<<s[top]<<"\n";
else
cout<<s[top]<<";";
return ;
}
if(sum>n)
return ;
for(int i=x;i<=n;i++)
{//题目要求递增顺序,应从x开始遍历,而非1
sum+=i;
s[++top]=i;
dfs(i);
sum-=i;//回溯
top--;
}
}
int main()
{
cin>>n;
dfs(1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: