CafeM0ca

[BOJ] 2018 연세대학교 컴퓨터과학과 프로그래밍 경진대회 Open Contest A번 본문

Programming/백준

[BOJ] 2018 연세대학교 컴퓨터과학과 프로그래밍 경진대회 Open Contest A번

M0ca 2018. 4. 29. 01:42
반응형

지금 문제 열람이 안되는데 

문제는 하나의 큰 폭죽이 k개의 중간 폭죽으로 나눠지고, 나눠진 중간폭죽은 폭죽마다 k개의 작은 폭죽으로 또 나눠져 한줌의 재가 된다는 내용이다.

이때 전체 폭죽 대,중,소의 개수를 주어지고 k를 구하는 문제였다.


입력으로 21이 주어지면

21 = 대+중+소 이다.

여기서 대는 항상 1이다.

20 = 중+소

소는 중의 제곱이다. 편의상 둘다 k라 두자.

20 = k + k^2

k로 묶으면

20 = k(1+k)다.


이것을 코드로 구현하면 되는 단순한 문제다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
    cin.tie(NULL);    
    cin.sync_with_stdio(false);
    int n;
    cin >> n;
    // result = x*(x+1)+1;
    for(int i=1;i<101;i++)
    {
        if(i*(i+1)+1 == n)
        {
            cout << i;
            break;
        }
    }
    return 0;
}
 
cs

등비수열의 합으로 푸는 방법도 있더라.


반응형

'Programming > 백준' 카테고리의 다른 글

[BOJ]1193번 분수찾기  (0) 2018.04.29
[BOJ] 2275번 부녀회장이 될테야(feat. lambda)  (0) 2018.04.29
[BOJ]1157번 단어 공부  (0) 2018.04.22
[BOJ]2675번 문자열 반복  (0) 2018.04.22
[BOJ]10809번 알파벳 찾기  (0) 2018.04.22
Comments