一天一道算法题—2015-10-15

1、题目:输入一个正数n,输出所有和为n 连续正数序列。

例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。

解析:

1)本题的关键词是连续,而且是正数。

2)举例,从例子中找到规律。

n = 1  => 1

n = 2  => 2

n = 3  => 1+2

....

测试了几组,规律是这样的:

正数n,从1~ Int(n/2)遍历的数值作为起始点,然后依次累加,直至大于或等于n。

#include <stdio.h>
int main()
{
	int n;  //输入值 
	int mid,j; //中间值 ,循环值 
	int i; //增加值 
	int sum = 0; //累加结果值 
	int value ;
	scanf("%d",&n);
	mid = n/2 ;
	for ( j = 1 ; j < mid+1 ; j++)
	{
		value = j;
		sum = 0;
		while( sum < n )
		{
			sum = sum + value;
			value++;
		}
		if ( sum == n)
		{
			for(i = j ; i < value;i++)
			{
				printf("%d ",i);
			}
			printf("
");
		} 
	}
}

  

原文地址:https://www.cnblogs.com/shixiaomiao/p/4883349.html