输入一个正数n,输出所有和为n连续正数序列。

来源:互联网 发布:lol冷小莫淘宝店 编辑:程序博客网 时间:2024/04/23 19:59

例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-54-67-8
分析:这是网易的一道面试题。

#include <iostream>using namespace std;void findSumSear(int n){int small = 1,big = 2;int mid = (n+1)/2;int sum = small+big;if(sum == n){for(int i = small;i<=big;i++)cout << i << " ";cout << endl;}while(small < mid){if(sum < n){sum+= ++big;}else{sum-=small;small++;}if(sum == n){for(int i = small;i<=big;i++)cout << i << " ";cout << endl;}}}int main(){findSumSear(21);return 0;}