码迷,mamicode.com
首页 > 其他好文 > 详细

和为S的连续正数序列

时间:2015-06-15 16:24:37      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:

题目:
输入一个正数s,打印出所有和为S的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以打印出三个结果。

void FindContinuousSequence(int sum)
{
    if(sum < 3)
        return;

    int small = 1; 
    int big = 2;
    int middle = (1 + sum) / 2;
    int curSum = small + big;

    while(small < middle)
    {
        if(curSum==sum)
        {
            PrintContinuousSequence(small,big);
            big++;
            curSum+=big;
        }else if(curSum>sum)
        {

            curSum-=small;
            small++;
        }else
        {
            big++;
            curSum+=big;
        }
    }
}

void PrintContinuousSequence(int small, int big)
{
    for(int i = small; i <= big; ++ i)
        printf("%d ", i);

    printf("\n");
}

和为S的连续正数序列

标签:

原文地址:http://blog.csdn.net/leosha/article/details/46504543

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!