USTC机试-将正整数分解成尽可能多的连续整数之和
代码如下:
#include<stdio.h>
#define N 100
int main(){
int n;
int j;
printf("请输入您的整数:");
scanf("%d",&n);
for(int i=1;i<=n/2;i++){
//连续整数超过n/2的和就超出n了
for(int k=1;;k++){
int sum=k*(2*i+k-1)/2;
if(sum>n) break;
if(sum==n){
for(j=0;j<k;j++)
printf("%d ",j+i);
printf("\n");
}
}//一趟循环结束确定最大
}
return 0;
}