编程算法 - 和为s的连续正整数序列 代码(C)
来源:互联网 发布:数据库管理系统例子 编辑:程序博客网 时间:2024/06/05 05:28
和为s的连续正整数序列 代码(C)
本文地址: http://blog.csdn.net/caroline_wendy
题目: 输入一个正数s, 打印出所有和为s的连续正数序列(至少含有两个数).
起始于1, 2, 相加, 如果相等则返回, 如果小于, 则前端递增右移, 如果大于, 则后端递增右移, 一直到后端移动到s的一半位置.
因为两个数, 小数为一半, 大数为一半加一, 则必然结束.
代码:
/* * main.cpp * * Created on: 2014.6.12 * Author: Spike *//*eclipse cdt, gcc 4.8.1*/#include <stdio.h>#include <stdlib.h>#include <string.h>void PrintContinuousSequence(int small, int big){for (int i=small; i<=big; ++i)printf("%d ", i);printf("\n");}void FindContinuousSequence(int sum) {if (sum<3)return;int small = 1;int big = 2;int middle = (1+sum)/2;int curSum = small+big;while (small < middle) {if (curSum == sum)PrintContinuousSequence(small, big);while (curSum > sum && small < middle) {curSum -= small;small++;if(curSum == sum)PrintContinuousSequence(small, big);}big++;curSum += big;}}int main(void){FindContinuousSequence(15);return 0;}
输出:
1 2 3 4 5 4 5 6 7 8
2 0
- 编程算法 - 和为s的连续正整数序列 代码(C)
- 和为 s 的连续正整数序列
- 【剑指offer】和为S的连续正整数序列
- 剑指offer 42 和为S的连续正整数序列
- 求和为s的连续正整数序列
- 算法 - 求和为n的连续正整数序列(C++)
- 和为S的两个数字 and 和为s的连续正整数序列
- [剑指offer]和为s的两个数 ; 和为s的连续正整数序列
- 和为n的连续正整数序列
- 和为 n 的连续正整数序列
- 和为N的连续正整数序列
- 和为N的连续正整数序列
- 和为sum的连续正整数序列
- 和为S的正整数序列
- 每日一题(62) - 和为s的连续正整数序列
- 打印所有和为s的连续正整数序列(至少含两个数)
- 面试题41:和为s的两个数字 VS 和为s的连续正整数序列
- 算法题/和为s的连续正数序列
- Windows--某些设置由你的系统管理员管理
- 免安装版mysql配置
- Spark1.0.0 开发环境快速搭建
- Binary Tree Inorder Traversal LeetCode Java
- js中的字符串(string)的一些方法:toUpperCase(),indexOf(""),length
- 编程算法 - 和为s的连续正整数序列 代码(C)
- linux下find,xargs命令详解和实例
- Linux下ctrl+c/z/d的区别
- 第26条:优先考虑泛型
- ios基础——OC语法代码块的运用
- 交叉编译ortp、osip2、eXosip2、mediastreamer2及其附带的库实现SIP软电话
- 为什么说知识改变命运?
- Java设计模式(七)策略模式 模板模式
- 简单计算器