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("\n");
}
}
}