반응형
[ 문제 ]
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
[ 코드 ]
using System;
int X = int.Parse(Console.ReadLine());
(int numerator, int denominator) = FindFraction(X);
Console.Write($"{numerator}/{denominator}");
static (int, int) FindFraction(int X)
{
int i = 1;
while (X > i)
{
X -= i;
i++;
}
int numerator, denominator;
if (i % 2 == 0)
{
numerator = X;
denominator = i - X + 1;
}
else
{
numerator = i - X + 1;
denominator = X;
}
return (numerator, denominator);
}
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/1193
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 2609번 최대공약수와 최소공배수 (0) | 2024.02.14 |
---|---|
[C#] 백준 24267번 알고리즘 수업 - 알고리즘의 수행 시간 6 (1) | 2024.02.14 |
[C#] 백준 4153번 직각삼각형 (피타고라스의 정리) (2) | 2024.02.13 |
[C#] 백준 14215번 세 막대 (0) | 2024.02.13 |
[C#] 백준 9063번 대지 (0) | 2024.02.13 |