`
java-mans
  • 浏览: 11432343 次
文章分类
社区版块
存档分类
最新评论

输入一个正数n,输出所有和为n连续正数序列

 
阅读更多

输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-54-67-8

具体代码如下:

#include "stdafx.h"
#include<list>   
#include<iostream>   
using namespace std;  

//函数功能 : 打印满足条件的连续序列
//函数参数 : begin为开始,end为结束,左闭右开区间
//返回值 :   无
void PrintSequence(unsigned begin, unsigned end)
{
	for(unsigned i = begin; i < end; i++)
		cout<<i<<' ';
	cout<<endl;
}
//函数功能 : 输出所有和为n连续正数序列
//函数参数 : n为整数
//返回值 :   无
void FindTargetSequence(unsigned n)
{
	if(n < 3)    //必须是2个连续数之和,n必须大于等于3
		return ;

	unsigned low = 1;
	unsigned high = 2;
	unsigned middle = n / 2;
	unsigned sum = 1;

	while(low <= middle) //只需考虑一半元素即可
	{
		if(sum == n)  //满足条件
			PrintSequence(low, high);

		if(sum < n)  //不够,说明还需要再加
		{
			sum += high;
			high++;
		}
		else //够了,说明要减一点
		{
			sum -= low;
			low++;
		}
	}
}
int main()  
{  
	/*int sum, n;  
	cout << "请输入你要等于多少的数值sum:" << endl;  
	cin >> sum;  
	cout << "请输入你要从1.....n数列中取值的n:" << endl;  
	cin >> n;  
	cout << "所有可能的序列,如下:" << endl;  
	find_factor(sum,n);  */
	FindTargetSequence(15);
	system("pause");
	return 0;  
} 


分享到:
评论

相关推荐

    python 和为s的连续正数序列,输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数

    # 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 # 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 # 输入示例 # 输入:target = 9 # 输出:[[2,3,4],[4,5]...

    wujie199#CS#57.2 和为 S 的连续正数序列1

    57.2 和为 S 的连续正数序列题目描述牛客网题目描述输出所有和为 S 的连续正数序列。例如和为 100 的连续序列有:[9, 10, 11, 12, 13,

    和为S的连续正数序列.md

    和为S的连续正数序列.md

    Python 面试题57 – II. 和为s的连续正数序列

    输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 示例 1: 输入:target = 9 输出:[[2,3,4],[4,5]] 示例 2: ...

    just1296#leetcode#面试题57-II.和为s的连续正数序列1

    面试题57 - II. 和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。示例 1:输出:[

    和为s的连续正数序列1

    示例 1:输出:[[2,3,4],[4,5]]示例 2:输出:[[1,2,3,4,5],[4,5,6],[7,8]]当窗口的和小于 target 的时候,窗口的

    判断一个序列是否是图序列,并画图(python)

    用python实现,随便输入一个序列(乱序),判断这个序列是否是图序列,如果是,输出图形(有脚标)。

    test8.java

    使用list,最简短的代码,输入一个正数n,输出所有和为n的连续正数序列,结果添加到list中

    在线编程-连续数字求和

    但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? ...

    世界500强面试题.pdf

    1.5.10. 输入一个正数 n,输出所有和为 n 连续正数序列 ................................125 1.6. 面试题集合(五) .......................................................................................126...

    c程序设计习题参考(谭浩强三版)习题参考解答

    11.6编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。 100 11.7写一函数free,将上题new函数占用的空间释放free(p)表示将p...

    youxiaokai#coding-interviews#57-2.和为S的连续正数序列1

    示例 1:输出:[[2,3,4],[4,5]]示例 2:输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:方法:双指针法求出两个指针中间数的总和

    MangoDowner#clear-leetcode#剑指Offer57-II.和为s的连续正数序列1

    1、设定左右指针left/right,分别指向1和2,维护左右指针间的窗口和sum 2、如果sum等于target值,将左右指针间的数字作为一个数组加入最终结果

    香浓编码程序

    设某信道有r个输入符号,s个输出符号,信道容量为C,当信道的信息传输率R,码长N足够长时,总可以在输入的集合中(含有r^N个长度为N的码符号序列),找到M ((M^(N(C-a))),a为任意小的正数)个码字,分别代表M个等可能...

    脑力保健 微软,GOOGLE等试题试做 C#版

    每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。 题目:输入一个...

    目前最火最热门的python经典编程题之3

    57.和为S的连续正数序列 Array 关注 58.翻转单词序列 String 58.左旋转字符串 String 59.滑动窗口的最大值 Queue 常考 60.n个骰子的点数 61.扑克牌顺子 62.孩子们的游戏 Math 63.股票的最大利润 Math 64.求1...

    数据结构(C++)有关练习题

    内容及步骤: 编写一个类Complex,定义复数的加法、减法、乘法和除法运算,要求在编写该类时重载这些运算操作符,并重载I/O操作符,以便输入和输出复数; 实验报告要求: 按要求写出完整的实验代码; ...

    硬件工程师培训教程000006).doc

    一个典 型的操作集包括与内部数据类型相关的基本算术指令(即实数和整数加法、减法、乘法和 除法等)、测试数据项性质(如是否为零,是正数或负数等)的指令 、对数据项的某一部 分进行存取和修改 (如在一个字中存取一...

    hhschool:完成测试任务

    找到一个长度为2N的数字数组的中位数,其中包含两个给定数组中的所有数字。 样本输入:1 2 3 4 1 4 5 6 样本输出:3.5 2.无尽的顺序 让我们以通过粘贴连续的正数形成的无限数字序列为例:S = ...

    硬件工程师培训教程(二).doc

    一个典型的操作集包括 与内部数据类型相关的基本算术指令(即实数和整数加法、减法、乘法和除法等)、测试 数据项性质(如是否为零,是正数或负数等)的指令 、对数据项的某一部分进行存取和修 改 (如在一个字中存取一...

Global site tag (gtag.js) - Google Analytics