现在的位置: 首页 > 综合 > 正文

和为定值的连续整数序列

2013年10月27日 ⁄ 综合 ⁄ 共 586字 ⁄ 字号 评论关闭

输入一个整数Sum,打印出和为Sum的连续整数序列。例如2+3+4 =4+5=9;

求解过程图解:

求和为9的连续序列的过程:


看代码:

#include<iostream>
using namespace std;
bool Find(int data[],int length,int sum,int&num1,int&num2);
void Print(int num1,int num2);
void Find(int sum);
int main()
{
    Find(9);
    return 0;
}
void Find(int sum)
{
    if(sum<3)
        return ;     //序列不存在
    int small=1;
    int big=2;
    int middle=(1+sum)/2; 
    int currentSum=small+big;
    while(small<middle) 
    {
        if(currentSum==sum)
            Print(small,big);
        while(currentSum>sum&&small<middle)
        {
            currentSum-=small;
            small++;
            if(currentSum==sum)
                Print(small,big);
        }
        big++;
        currentSum+=big;
    }
}
void Print(int num1,int num2)
{
    for(int i=num1;i<=num2;i++)
        cout<<i<<"  ";
    cout<<endl;
}

【上篇】
【下篇】

抱歉!评论已关闭.