小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
2016-11-03 17:43
1106 查看
// test20.cpp : 定义控制台应用程序的入口点。
//
//
#include "stdafx.h" #include<iostream> #include<vector> #include<string> #include<queue> #include<stack> #include<cstring> #include<string.h> #include<deque> using namespace std; class Solution { public: vector<vector<int> > FindContinuousSequence(int sum) { int half = sum / 2 + 1; int result = 0; vector<int> group; vector<vector<int>> vec; for (int time = 1;time <= half;++time) { for (int num = time;num < sum;++num) { group.push_back(num); result += num; if (result == sum) { vec.push_back(group); group.clear(); result = 0; break; } else if(result>sum) { group.clear(); result = 0; break; } else { } } } return vec; } }; int main() { Solution so; vector<vector<int>> vec = so.FindContinuousSequence(1); for (auto it = vec.begin();it != vec.end();++it) { for (auto num = it->begin();num != it->end();++num) { cout << *num << " "; } cout << endl; } cout << endl; return 0; }
相关文章推荐
- 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一
- 输入一个正数s,打印出所有和为s的连续正数序列(至少包含两个数),例如输入15,打印出连续3个序列1-5,4-6,7-8
- 输入一个正数s,打印出所有和为s的连续正数序列(至少包含两个数)
- 面试题41_2 输入一个正数s,打印所有和为s的连续正数序列(至少两个数)
- [南阳OJ-No.22]素数求和问题|现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
- js如何判断一组数字是否连续,得到一个临时数组[[3,4],[13,14,15],[17],[20],[22]];
- 试画出一张表以说明Z*11中每个元素的阶。找出最小的原根g并计算出一张表,要求写出对所有x属于Z*11,相应的ind11,g(x)的值。
- 要求可以根据每个学生的成绩进行由高到低的排序如果成绩相等则按照年龄由低到高排序数据的样式如下张三:19:90|李四:20:90|王五:20:80|赵六:21:100
- 对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。
- 找出所有和为S的连续正数序列
- 对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质
- 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示无解)。1<=18,-10<=Si<=10
- 求出所有满足下列条件的二位数:将此二位数的个位数字与十位数字进行交换,可得到一个新的 数,要求新数与原数之和小于100。
- 如何在Fedora 17 18 19 20 21 22 23 系统中安装 openjdk 1.6 与 1.7 1.8 共存
- HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?
- 尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。
- 打印所有和为s的连续正整数序列(至少含两个数)
- 第八题:牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。
- 写正确程序需要注意的地方:输入一个正数n,输出所有和为n连续正数序列。
- 输入n个整数,编写函数实现以下操作,要求用指针实现: (1) 对n个数进行排序; (2) 将从指定位置的m个数逆序存放,例如:原序列为2,4,6,8,10,12,14,16,18,20,若要求把