题目描述:
输入一个正数s,打印出所有和为s的连续正数序列。
思路:
设置两个数small big分别表示序列的最小值和最大值,若序列和等于s,打印输出;若大于s,减去small继续比较;若小于s,则加上big继续比较。
代码:
语言C++,已通过牛课网在线测试。
class Solution {
public:
vector<vector<int> > FindContinuousSequence(int sum) {
vector<vector<int>> res;
if(sum < 3) return res;
int small = 1, big = 2;
int cursum = small + big;
while(small <= sum/2){
if(cursum == sum){//如果找到一组的话 还得继续找 后面还得有代码
vector<int> tmp;
for(int i = small; i <= big; i++) tmp.push_back(i);
res.push_back(tmp);