728x90
0. 주어진 문제 |
분수찾기 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 256 MB | 14804 | 7835 | 6979 | 54.703% |
문제
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
1/1 | 1/2 | 1/3 | 1/4 | 1/5 | … |
2/1 | 2/2 | 2/3 | 2/4 | … | … |
3/1 | 3/2 | 3/3 | … | … | … |
4/1 | 4/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==0) std::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 |