博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

程序员面试100题之二十六,和为n连续正数序列

Posted on 2010-09-24 16:51  KurtWang  阅读(170)  评论(0)    收藏  举报
// 100_26.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

void find(int n)
{
	int small = 1;
	int big = 2;
	int middle = (n+1)/2;
	int sum = small + big;

	while(small < middle)
	{
		if(sum == n)
			printf("%d %d\n", small,big);
		if(sum > n)
		{
			sum -= small;
			small++;
		}
		else
		{
			big++;
			sum += big;
		}
	}

}

int _tmain(int argc, _TCHAR* argv[])
{
	find(15);
	return 0;
}