분수찾기
15 June 2019
문제 : https://www.acmicpc.net/problem/1193
이번은 각 분수들의 규칙을 찾는 문제를 풀어보도록 하겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int value = scanner.nextInt();
int line = 1;
while (true) {
value -= line;
if (value <= 0) {
value += line;
break;
}
line++;
}
int first = 0;
int last = 0;
if (line % 2 == 0) {
first = value;
last = line + 1 - first;
} else {
last = value;
first = line + 1 - last;
}
System.out.println(first + "/" + last);
}
}
각 분수의 규칙을 보면 각 대각선 라인별로 1,2,3,4,5개로 증가가 되고 홀수인 경우는 분자, 짝수인 경우는 분모가 각 라인의 크기만큼부터 시작하는 걸 볼 수 있습니다.분자는 반대로 1부터 시작해 라인의 크기만큼 증가하게 됩니다.
따라서, 몇번째 라인, 몇번째 수인지를 찾으면 해당 값을 찾을 수 있게 됩니다.
각 라인이 짝수인 경우는 분자의 값이 1부터 증가, 홀수인 경우는 분모의 값이 1부터 증가입니다.
그리고, 분자와 분모의 합은 라인값+1 과 같기 때문에 위 코드와 같이 몇번째 수인지를 알게 되면 둘 다 값을 알 수 있게 됩니다.