[Silver / 1193] 분수찾기
🔷 분류
수학, 구현
✒️ 문제 설명
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
⬅️ 입력
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
➡️ 출력
첫째 줄에 분수를 출력한다.
💻 코드 (C++)
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
int cnt = 1;
while(1) {
if(n - cnt > 0) {
n -= cnt;
cnt++;
}
else break;
}
int up, down;
if(cnt % 2 == 0) {
up = n;
down = cnt - n + 1;
}
else {
up = cnt - n + 1;
down = n;
}
cout << up << "/" << down;
return 0;
}
공유하기
Twitter Facebook LinkedIn글 이동
Comments