64,649
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
void decomposeInt(int num)
{
int *dec = new int[num];
int i, sum, count = 2;
while(count < num)
{
for(i = 0; i < count; ++i)
dec[i] = 1;
while(dec[count-1] <= num-1)
{
sum = 0;
for(i = 0; i < count; ++i)
sum += dec[i];
if(sum == num)
{
for(i = 0; i < count; ++i)
cout<<dec[i]<<" ";
cout<<endl;
}
++dec[0];
for(i = 0; i < count - 1; ++i)
{
if(dec[i] >= num)
{
dec[i] -= num;
++dec[i+1];
}
if(dec[i] == 0)
++dec[i];
}
}
++count;
}
for(i = 0; i < num; ++i)
cout<<1<<" ";
cout<<endl;
delete[] dec;
}
int main()
{
decomposeInt(4);
return 0;
}