题目描述
输入一个整数n,输出n拆分成若干正整数和的所有方案,即n=S1+S2+...+Sk的形式,且S1<=S2<=...<=Sk,n<=20,请按照字典序输出。
输入
一行一个整数n。
输出
所有拆分方案。
样例输入
4
样例输出
1+1+1+1 1+1+2 1+3 2+2 4 total=5
思路:
贼水一道题.......
#include<iostream>
using namespace std;
int n,a[11],ans;//a数组为每次输出的算式
int out(int t)//输出函数
{
int j;
for(j=1;j<=t-1;j++)
{
cout<<a[j]<<"+";//处理输出格式
}
cout<<a[t]<<endl;
}
int huafen(int sum,int t)//划分函数 sum即为当前分完后的和 t即为第几个数方便输出
{
int i;
if(sum==0) //如果划分完毕 输出结果 数量+1
{
out(t-1);
ans++;
return 0;
}
for(i=1;i<=sum;i++)//i为划分的数
{
if(a[t-1]<=i &am