1. 程式人生 > >ALGO-118演算法訓練 連續正整數的和

ALGO-118演算法訓練 連續正整數的和

演算法訓練 連續正整數的和  

時間限制:1.0s   記憶體限制:256.0MB

    

問題描述

  78這個數可以表示為連續正整數的和,1+2+3,18+19+20+21,25+26+27。
  輸入一個正整數 n(<=10000)
  輸出 m 行(n有m種表示法),每行是兩個正整數a,b,表示a+(a+1)+...+b=n。
  對於多種表示法,a小的方案先輸出。

樣例輸入

78

樣例輸出

1 12
18 21
25 27

#include <iostream>
using namespace std;

int main(int argc, char *argv[]) {
	int n;
	cin>>n;
	for(int i=1;i<=n/2;i++){
		int sum=i;
		for(int j=i+1;j<=n;j++)
			sum+=j;
			if(sum==n)
				cout<<i<<" "<<j<<endl;
			else if(sum>=n)
				break;
	}
	return 0;
}