SeriesSum
来源:互联网 发布:mac book air 换电池 编辑:程序博客网 时间:2024/06/06 15:35
和为s的连续正整数序列 SeriesSum
- 输入一个正整数s,打印出所有和为s的连续正整数序列(至少含有两个数字)。
代码
#include <stdio.h>#include <vector>using namespace std;void two_sum2(vector<int> nums, int s){ int start = 0; int end = 1; int half = (s+1)/2; int sum = nums[start] + nums[end]; while (start<half&&end<=(int)nums.size()) { if (sum==s) { for (int i=start; i<=end; i++) { printf("%d ", nums[i]); } printf("\n"); sum = sum - nums[start]; start++; end++; sum = sum + nums[end]; } else if(sum<s){ end++; sum = sum + nums[end]; } else{ sum = sum - nums[start]; start++; } }}int main() { int a[] = {1,2,3,4,5,6,7,8,9,10,11}; vector<int> array(a,a+11); two_sum2(array, 21); return 0;}
思路及执行过程
思路:定义两个指针,分别不过,start指针从1开始,end指针从2开始。
0 0