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 |