-
1193번. 분수찾기IT Tech/PS 2020. 7. 30. 01:43
문제
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
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번째 분수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
출력
첫째 줄에 분수를 출력한다.
예제 입력
14
예제 출력
2/4
코드
#include <iostream> using namespace std; int main() { int cnt; cin >> cnt; // 14 -> 2/4 // 1, 3, 6, 10, 15, 21, 28 // 1 2 3 4 5 6 7 int i = 0; for(i = 1; cnt > 0; i++) { cnt = cnt - i; } // 해당 cnt의 i번째에 해당하는 그룹, i 찾기. // 5 if( i % 2 == 0 ) cout << 1 - cnt << "/" << i + cnt - 1 << endl; else cout << i + cnt - 1 << "/" << 1 - cnt << endl; return 0; }
수학 문제 너무 어렵다..
마지막 출력 부분은 비슷하게 짜신 분이 있어서 다른 사람 것 이해해서 풀었다.
출력부분이 대박이었다. 어떻게 저렇게 생각하지 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
cout 부분은 도저히 생각이 안나서 찾아봤다.. ㅠㅠㅠㅠ
반응형'IT Tech > PS' 카테고리의 다른 글
2775번. 부녀회장이 될테야 (0) 2020.08.08 2869번. 달팽이는 올라가고 싶다. (0) 2020.08.03 1712번. 손익분기점 (0) 2020.07.27 1316번. 그룹 단어 체커 (0) 2020.07.26 2941번. 크로아티아 알파벳 (0) 2020.07.21