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

全部评论

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
头像
10-16 09:58
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务