그림과 같이 짝수, 홀수열로 나누어 구분하여 출력하는 방식으로 접근하였다.
구분의 기준은 1씩 늘어나는 등차수열이므로 이전 단계의 개수를 정의하는 숫자m
을 활용하여m+1
인 합계를 기준으로 홀수열과 짝수열을 나누어 출력하면 된다.
현재 단계의 왼쪽/오른쪽 숫자 합인
tot=m+1
을 지정하고 삼항연산자로 홀수 일 경우m+X-m*(m+1)/2
를 왼쪽 출력,tot-a
를 오른쪽 출력하고, 짝수일 경우 반대로 출력하면 된다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int X,m=1,tot,a;
cin>>X;
while(X>m*(m+1)/2)
m++;
tot=m+1;
a=m+X-m*(m+1)/2;
tot%2?printf("%d/%d",a,tot-a):printf("%d/%d",tot-a,a);
}