본문 바로가기

Algorithm/Mathematics

Baekjoon 1789 수들의 합

Link https://www.acmicpc.net/problem/1789

소스결과 1984 KB / 0 ms

출처 Baekjoon

언어 C++ 17

분류 수학

 

설명

서로 다른 N개의 자연수의 합으로 이루어진 n 이 주어질 때 N의 최대 값을 구하여라.

 

1 ~ X 까지의 합이 처음으로 n보다 커지는 X를 구하면 된다.

 

알고리즘

1. N을 입력 받는다.

2. 1부터 1 씩 증가하며 ( i + 1 ) * ( i + 2 ) / 2가 n보다 커지기 전까지 반복한다.

3. 2를 처음으로 만족시키지 못하는 i를 출력한다.

 

소스코드

#include <iostream>

using namespace std;

int main()
{
	long long n;

	cin >> n;

	long long res = 1;

	for (; (res + 1) * (res + 2) / 2 <= n; res++);

	cout << res;

	return 0;
}

'Algorithm > Mathematics' 카테고리의 다른 글

Baekjoon 17103 골드바흐 파티션  (0) 2019.04.01
Baekjoon 6588 골드바흐의 추측  (0) 2019.04.01
Baekjoon 1977 완전제곱수  (0) 2019.04.01
Baekjoon 1212 8진수 2진수  (0) 2019.03.31
Baekjoon 1037 약수  (0) 2019.03.31