编程算法 - 和为s的连续正整数序列 代码(C)
和为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
编程算法 - 和为s的连续正整数序列 代码(C)的更多相关文章
- 算法 - 求和为n的连续正整数序列(C++)
//************************************************************************************************** ...
- C语言:判断t所指字符串中的字母是否由连续递增字母组成。-判断一个输入的任何整数n,是否等于某个连续正整数序列之和。-将一副扑克牌编号为1到54,以某种方式洗牌,这种方式是将这副牌分成两半,然后将他们交叉,并始终保持编号1的牌在最上方。
//判断t所指字符串中的字母是否由连续递增字母组成. #include <stdio.h> #include <string.h> void NONO(); int fun( ...
- 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)
package leetcode;import edu.princeton.cs.algs4.Cycle;import java.util.ArrayList;import java.util.Arr ...
- 【编程题目】和为 n 连续正数序列
51.和为 n 连续正数序列(数组).题目:输入一个正数 n,输出所有和为 n 连续正数序列.例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以输出 3 个连续序列 1-5. 4 ...
- 26.打印所有和为S的连续正整数序列[FindContinuousSequencesWithSumS]
[题目] 输入一个正数n,输出所有和为n连续正数序列.例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. [分析] 这是网易的一道面试题.这道 ...
- [算法]和为S的连续正数序列
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...
- 和为S的连续正整数序列(双指针法)
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...
- 编程算法 - 圆圈中最后剩下的数字(递推公式) 代码(C++)
圆圈中最后剩下的数字(递推公式) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 0,1...,n-1这n个数字排成一个圆圈, 从数字0開始 ...
- 编程算法 - 数字数组中只出现一次 代码(C)
数字数组中只出现一次 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 一个整型数组里除了两个数字以外, 其它的数字都出现了两次. 请敲代码找出这 ...
随机推荐
- Unity Android交互过坑指南
Unity Android交互过坑指南 介于网上看过很多unity和Android交互的教程,都或多或少的漏掉了一些部分,导致编译过程中出现各种问题,特此整理一份教程,仅供参考 介绍 本次实现的是在游 ...
- favourite和favorite的区别
同一个词,英式和美式的拼写法而已.通常英式英语里的-our-字母组合,到了美式英语里面都成了-or-字母组合,最常见的有英式的 colour,到美式英语成了 color.
- Ajax——php基础知识(一)
AMP环境 AMP(Apache.MySQL.PHP)是三个独立的软件,但是对于初学者而言分别安装以及配置需要掌握一定的软件知识,所以就有了很多AMP集成环境帮助我们简化安装 ——WAMP WAMP安 ...
- C#——数据库的访问
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- SQL Server2008 数据库日志清理
USE [master] --运行master数据库 GO ALTER DATABASE HIS_MHYW SET RECOVERY SIMPLE WITH NO_WAIT --库 (dh_emr) ...
- Effective Java中文版
译者序 序 前言 第一章 引言 第二章 创建和销毁对象 第1条:考虑用静态工厂方法代替构造函数 第2条:使用私有构造函数强化singleton属性 第3条:通过私有构造函数强化不可实例化属性 第4条: ...
- 调用.NET Serviced Component引发的性能问题及其解决
在企业用户环境里,.NET Serviced Component使用广泛.它比较好的把传统COM+封装和.NET应用逻辑衔接了起来,在服务器端应用起到重要作用..NET Serviced Compon ...
- Python语言之模块
模块基本上就是一个包含了所有你定义的函数和变量的文件.它用处在于使你你能在别的程序中重用它提供的功能和服务. 1.模块的使用方法 模块的文件名必须以.py作为扩展名. 当我们需要使用某个模块时,我们需 ...
- 几种fullpage用法及demo
jQuery全屏滚动插件fullPage.js https://github.com/alvarotrigo/fullPage.js http://www.dowebok.com/77.html 全屏 ...
- jsTree使用记录
1. ajax请求生成jsTree <span style="font-size:14px;"><script> var r = []; // 权限树中被选 ...