和为n连续正数序列

原创 2017年01月02日 23:40:16

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

例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。

分析:这是网易的一道面试题。

#include<iostream>
#include<cstring>
using namespace std;
void ans(int n)
{
	int small=1,big=2;
	int sum=small+big;
	if(n<3)
		return ;
	while(small<=(n-1)/2)
	{
		if(sum==n)
		{
			for(int i=small;i<=big;i++)
				cout<<i<<" ";
			cout<<endl;
			big++;
			sum+=big;
		}	
		else if(sum<n)
		{
			big++;
			sum+=big;
		}
		else
		{
			sum-=small;
			small++;
		}
	}
}
int main()
{
	int n;
	while(cin>>n)
	{
		ans(n);
	}
	return 0;
}

相关文章推荐

和为n的连续正数序列

【题 目】输入一个整数,输出所有和为n的连续正数序列。例如:输入15,由于15=7+8=4+5+6=1+2+3+4+5,所以输出的序列为『1,2,3,4,5』;『4,5,6』,『7,8』三个。   ...

和为 n 连续正数序列

题目:输入一个正数 n,输出所有和为 n连续正数序列。 例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以输出 3 个连续序列 1-5、4-6和 7-8。   方法...

求和为n连续正数序列 C++实现

题目:输入一个正数n,输出所有和为n连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。 分析:这是网易的一道面试题。 这...

和为n连续正数序列

题目:输入一个正数n,输出所有和为n连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。 分析:这是网易的一道面试题。 这...

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

public class lzwCode { public static void main(String[] args) { findCount(15); } /** * 题目:输...

算法习题51:输入一个正数n,输出所有和为n连续正数序列

和为n连续正数序列。 题目:输入一个正数n,输出所有和为n连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。 分析:这是...
  • ylf13
  • ylf13
  • 2013年11月08日 11:57
  • 1059

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

题目:输入一个正数n,输出所有和为n 连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。     思路...

给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱). 第二解

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T...

单调连续递增子序列(O(n2)

思想:这道题时间复杂度为o(n2),是LCS(最长公共子序列)的变形。相当于 一个x  原数组,一个y  数组由x  数组 升序排列并去掉重复值,求两个数组的最长公共子序列问题。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:和为n连续正数序列
举报原因:
原因补充:

(最多只允许输入30个字)