您的位置:首页 > 其它

整数分解为若干项之和

2017-03-09 09:36 183 查看
#include<stdio.h>
int s[100];//拆分结果保存在这个数组里
int top;//记录个数
int total, n;//累加数和所求数
int k;
void dfs(int index)
{
int i;
if (total == n){
printf("%d=", n);
for (i = 0; i<top - 1; i++)
printf("%d+", s[i]);
k++;
if (k == 4 || top == 1){
k = 0;
printf("%d\n", s[top - 1]);
}
else
printf("%d;", s[top - 1]);
return;
}
if (total>n)
return;
for (i = index; i <= n; i++){
total += i;
s[top++] = i;
dfs(i);
total -= i;
s[--top];
}
}
int  main()
{
while (scanf("%d",&n)==1){
k = 0;
top = 0;
total = 0;
dfs(1);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: