您的位置:首页 > 其它

5-37 整数分解为若干项之和 (20分)

2016-07-29 10:58 267 查看
#include<stdio.h>
int s[31];//拆分结果保存在这个数组里
int count;//记录个数
int sum;//累加和
int n;//总和
int k;//判断是否需要换行

void output(int index){
int i;
if(sum==n){
printf("%d=",n);
for(i=0;i<count-1;i++){
printf("%d+",s[i]);
}
k++;
if(k==4||count==1){
k=0;
printf("%d\n",s[count-1]);
}else{
printf("%d;",s[count-1]);
}
return;
}
if(sum>n){
return;
}
for(i=index;i<=n;i++){
sum+=i;
s[count++]=i;
output(i);
sum-=i;
--count;
}

}

int  main()
{
scanf("%d",&n);
if(n<=0||n>30){
return 0;
}

k=0;
sum=0;
count=0;
output(1);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: