您的位置:首页 > 其它

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

2015-10-15 18:42 211 查看
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");
}
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: