【剑指offer】和为S的连续正整数序列
来源:互联网 发布:3米直尺道路检测数据 编辑:程序博客网 时间:2024/05/29 07:42
题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
分析:做这一题我们定义整数left和right分别为1和2,left到right累加的和为t,当t<sum时,right++,t也加上right,当t>sum时,t减去left后left++,当t=sum时就把left到right的数保存起来。只要left小于right,就不断重复上面的过程,只有在left+1=right并且t>sum时才跳出循环。
程序:
vector<vector<int> > FindContinuousSequence(int sum) {vector<vector<int>> res;if(sum<3) return res;int left=1,right=2,t=3;while(left<right) {while(t<sum) {right++;t+=right;}while(t>sum&&left<right) {t-=left;left++;}if(left==right) {right++;t+=right;}if(t==sum) {vector<int> temp;int l=left;while(l<=right) temp.push_back(l++); res.push_back(temp);right++;t=t+right;}if(left+1==right&&left+right>sum) break;}return res;}
阅读全文
0 0
- 【剑指offer】和为S的连续正整数序列
- 剑指offer 42 和为S的连续正整数序列
- [剑指offer]和为s的两个数 ; 和为s的连续正整数序列
- 和为 s 的连续正整数序列
- 【剑指offer】题41:和为s的两个数VS连续正整数之和为S
- 剑指offer 41 和为S的连续正数序列
- 【剑指offer】Q41:和为s的连续正数序列
- 剑指offer--和为S的连续正数序列
- 《剑指offer》和为S的连续正数序列
- 剑指offer—和为S的连续正数序列
- 剑指offer-和为S的连续正数序列
- 剑指offer:和为S的连续正数序列
- 剑指offer:和为S的连续正数序列
- 剑指offer 和为S的连续正数序列
- [剑指offer]和为S的连续正数序列
- 剑指offer 之 和为S的连续正数序列
- 剑指offer题解 和为S的连续正数序列
- 剑指offer|和为S的连续正数序列
- thinkphp路由
- Java File 操作
- GitLab 服务器下客户端TortoiseGit安装配置
- Vue2 手势解锁密码 / 支付宝手势解锁
- Kotlin -- Kotlin初探
- 【剑指offer】和为S的连续正整数序列
- Oracle判断一个字符串是否包含另一个字符串
- Activiti初学者教程
- 在线获取键盘按键值(ascii码)工具
- 二叉树的面试题
- JAVA 攻城狮 第十三天
- java NIO (一)
- Buggy Robot (二维压一维最短路
- Cordova基本使用