백준

[백준] 1193번 분수찾기 | C

ris 2025. 1. 6. 19:40

 

이번 문제는 줄을 찾고 몇번째에 있는지 확인하는 문제였다.

규칙성

1. 각 라인의 분자, 분모의 합은 동일하다.

2. 홀수 라인은 우상향하며 짝수 라인은 좌하향한다.

 

이 두가지를 지켜서 코드를 짜면 되는 문제였다.

visual studio에서 작업하여 scanf 가 scanf_s로 바뀐 것만 바꿔주면 정답 코드이다.

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x;
    int line = 1;
    
    scanf_s("%d", &x);
    
    int i = 1;
    while (x - i > 0) { // line 수, 몇 번재인지 구하기
        x -= i;
        i += 1;
        line += 1;
    }

    if (line % 2 == 0) { // 짝수는 좌하향, 홀수는 우상향
        printf("%d/%d", x, line + 1 - x);
    }
    else {
        printf("%d/%d", line + 1 - x, x);
    }
    return 0;
}