65,211
社区成员
发帖
与我相关
我的任务
分享#include <iostream>
using namespace std;
int a[100],r[100];
void nd(int num)
{
int k = 0;
r[k] = num;
do
{
if (r[k] == 0)
{
//printf("%d=%d",a[0],a[1]);
cout << a[0] << "+" << a[1];
for(int i=2; i<= k;i++)
//printf("+%d",a[i]);
cout << "+" << a[i];
//printf("\n");
cout << endl;
while(k>0 && a[k] == 1) k--;
if(k>0) {a[k]--;r[k]++;}
}
else
{
a[k+1] = a[k] < r[k] ? a[k]:r[k];
r[k+1] = r[k] - a[k+1];
k++;
}
}while (k > 0);
}
int main ()
{
int m = 4;
a[0] = m;
nd(m);
}