
一个简单的C语言问题。对一个数进行分解
2个回答
2013-04-19
展开全部
#include <iostream>
using namespace std;
int result[1000];
void split(int n, int k, int c)
{
if (k == 0)
return;
if (n == k)
{
for (int i = 0; i < c; i++)
cout << result[i] << " ";
cout << k << endl;
if (k == 1)
return;
}
for (int i = k; i >= 1; i--)
{
result[c] = i;
split(n - i, i < n - i ? i : n - i, c + 1);
}
}
int main()
{
int n;
cin >> n;
split(n, n - 1, 0);
return 0;
}
using namespace std;
int result[1000];
void split(int n, int k, int c)
{
if (k == 0)
return;
if (n == k)
{
for (int i = 0; i < c; i++)
cout << result[i] << " ";
cout << k << endl;
if (k == 1)
return;
}
for (int i = k; i >= 1; i--)
{
result[c] = i;
split(n - i, i < n - i ? i : n - i, c + 1);
}
}
int main()
{
int n;
cin >> n;
split(n, n - 1, 0);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询