알고리즘 문제
[백준] 1193번 분수찾기
feelcoding
2020. 1. 31. 19:12
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