분수 찾기
무한히 큰 배열에 다음과 같이 분수들을 적혀있다.
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번째 분수를 구하는 프로그램을 작성하시오.
#include <iostream>
using namespace std;
int main()
{
int x;
cin >> x;
int i;
for (i = 1; x > 0; i++)
{
x = x - i;
}
if (i%2 == 1)
{
cout << i + x-1 << "/" << 1 - x << endl;
}
else if (i % 2 == 0)
{
cout << 1-x << "/" << i+x-1 << endl;
}
}
'백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 2193번 이친수 (0) | 2017.05.17 |
---|---|
[백준 알고리즘] 1789번 수들의 합 (0) | 2017.05.17 |
[백준 알고리즘] 1152번 단어의 개수 (1) | 2017.05.17 |
[백준 알고리즘] 1065번 한수 (0) | 2017.05.17 |
[백준 알고리즘] 1019 책 페이지 (0) | 2017.05.17 |