和为S的两个数字 VS 和为S的连续正整数

来源:互联网 发布:网络机顶盒安装app 编辑:程序博客网 时间:2024/06/07 01:40

和为S的连续正整数

  1. 定义first指针指向第一个数字1,last指针指向第二个数字2;
  2. 定义curSum为first-last之间数字的和;
  3. 比较S与curSum的大小,若相等则打印first-last;若curSum大,则first后移;若curSum小,则last前移。
#include <iostream>using namespace std;void Print(int first, int last){    for(int i=first; i<=last; i++)        cout<<i<<' ';    cout<<endl;}void FindContinueNumbers(int num){    int first = 1, last = 2;    int mid = (num + 1) / 2;    int curSum = first + last;    while(first < mid){        if(num == curSum){            Print(first, last);            first++;            curSum -= first - 1;        }        else if(curSum < num){            last ++;            curSum += last;        }        else{            first++;            curSum -= first - 1;        }    }}int main(){    int num = 9;    FindContinueNumbers(num);    return 0;}
0 0
原创粉丝点击