728x90

0. 주어진 문제 

시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초256 MB148047835697954.703%

문제

무한히 큰 배열에 다음과 같이 분수들이 적혀있다.

1/11/21/31/41/5
2/12/22/32/4
3/13/23/3
4/14/2
5/1

이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.

X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.



 1. 풀이


이것도 수열을 활용해서 풀자.



 2. 소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    int input,n(1);
    std::cin >> input;
    while(input>n*(n + 1/ 2){
        n++;
    }
    input -= n * (n - 1/ 2;
    if(n%2==0std::cout <<input << '/'<<n-input+1 << std::endl;
    else std::cout << n - input + 1 << '/' << input << std::endl;
}
cs


 3. 문제 출처


https://www.acmicpc.net/problem/1193


 4. 참고




'<백준> > |c++| easy' 카테고리의 다른 글

백준 1978 - 소수 찾기  (0) 2019.03.05
백준 10250 - ACM 호텔  (0) 2019.02.20
백준 2292 - 벌집  (0) 2019.02.19
백준 2941 - 크로아티아 알파벳  (0) 2019.02.18
백준 5622 - 다이얼(for문을 단축시키자)  (0) 2019.02.18

+ Recent posts