1. 程式人生 > >USTC機試-將正整數分解成儘可能多的連續整數之和

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;
}