連続した正の整数
問題の説明
78 これは、連続した正の整数の数として表すことができる+ 2 + 3 1 、18 + 19 + 20 + 21 、25 + 26 + 27 。
START入力⼀正の整数n個(<= 10000)
出力M ⾏ (N 有するM個の種類表記)、各⾏2つの正の整数A 、Bは、を表し+を(+ 1)+ ... + B = N。
表記の様々な、A 小型最初の出力の⽅場合。
サンプルを失うSTART
78
サンプル出力
1 12
18 21
25 27
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int *a = new int [n+1];
a[0] = 0;
for(int i = 1; i <= n; i++) {
a[i] = a[i-1] + i;
}
for(int i = 0; i <= n-2; i++) {
for(int j = i+1; j <= n; j++) {
if((a[j] - a[i]) == n) {
cout << i+1 << " " << j << endl;
} else if((a[j] - a[i]) > n) {
break;
}
}
}
delete [] a;
return 0;
}