728x90
 

1193번: 분수찾기

첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.

www.acmicpc.net

#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	if (n == 1) {
		cout << "1/1";
		return 0;
	}
	int index = 2;
	int sum = 1;
	while (true) {
		if (sum > n) {
			sum -= (index - 2);
			int numerator;
			int denominator;
			if (index % 2 == 1) {
				numerator = 1;
				denominator = index - 1;
				while (sum != n) {
					numerator++;
					denominator--;
					sum++;
				}
			}
			else {
				numerator = index - 1;
				denominator = 1;
				while (sum != n) {
					numerator--;
					denominator++;
					sum++;
				}
			}
			cout << numerator << "/" << denominator;
			break;
		}
		else if (sum == n) {
			if (index % 2 == 0) {
				cout << 1 << "/" <<index - 1;
			}
			else {
				cout << index - 1 << "/" << 1;
			}
			break;
		}
		else {
			sum += index;
			index++;
		}
	}
	return 0;
}
728x90

'알고리즘 문제' 카테고리의 다른 글

[백준] 2292번 벌집  (0) 2020.01.31
[백준] 2193번 이친수  (0) 2020.01.31
[백준] 2751번 수 정렬하기 2  (0) 2020.01.31
[백준] 10828번 스택  (0) 2020.01.31
[백준] 10814번 나이순 정렬  (0) 2020.01.30

+ Recent posts