백준 - 1193번 분수찾기(수학)

Kiwoong Park·2023년 6월 8일
0
post-thumbnail

문제

그림과 같이 짝수, 홀수열로 나누어 구분하여 출력하는 방식으로 접근하였다.
구분의 기준은 1씩 늘어나는 등차수열이므로 이전 단계의 개수를 정의하는 숫자 m을 활용하여 m+1인 합계를 기준으로 홀수열과 짝수열을 나누어 출력하면 된다.

C++풀이

현재 단계의 왼쪽/오른쪽 숫자 합인 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);

}
profile
You matter, never give up

0개의 댓글