题目描述
从键盘输入一个正整数N,求把它分解成若干个小于等于N的正整数之和的所有情况。
输入
输入一个正整数n
输出
一行,第一个整数表示第几种情况,空一格,第二个数表示正整数n,加一个=号,接下来用'整数+'的方式列出分解出的数
样例输入 复制
3
样例输出 复制
1 3=1+1+1 2 3=1+2 3 3=2+1 4 3=3
参考代码:
#include<bits/stdc++.h>
using namespace std;
int a[10001],cnt=0,m;
void chai(int n,int d)
{
if(n==0)
{
cnt++;
printf("%d %d=",cnt,m);
for(int j=1;j<d-1;j++)
{
printf("%d+",a[j]);
}
printf("%d\n",a[d-1]);
return;
}
for(int i=1;i<=n;i++)
{
a[d]=i;
chai(n-i,d+1);
}
}
int main()
{
cin>>m;
chai(m,1);
}