문제
네 개의 양의 정수 a, b, c, d가 있을 때, 아래와 같이 차이를 계산할 수 있다.
|a-b| |b-c| |c-d| |d-a|
이렇게 나온 네 개의 수를 이용해서 다시 또 차이를 계산할 수 있다. 이 작업을 모든 네 개의 정수가 같아질 때까지 반복한다.
예를 들어, 1, 3, 5, 9로 시작했을 때를 생각해보자.
1 3 5 9
2 2 4 8 (1)
0 2 4 6 (2)
2 2 2 6 (3)
0 0 4 4 (4)
0 4 0 4 (5)
4 4 4 4 (6)
위의 경우에서 수열은 6번 만에 수렴한다. a, b, c, d가 주어졌을 때, 이 수열이 얼마나 빨리 수렴하는지 구하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, a, b, c, d가 순서대로 주어진다. 입력의 마지막 줄에는 0이 4개 주어진다. (1 ≤ a,b,c,d ≤ 2,000,000,000)
출력
각 테스트 케이스에 대해서, 수열이 몇 번 만에 수렴하는지 출력한다.
힌트
만약 네 정수가 2n보다 작다면, 3*n번 이내에 수렴한다.
풀이
문제에서 주어진 대로 4개의 정수가 같아질 때까지 요소 간 감산 연산을 반복하는 과정이다.
소스코드
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 04435] 중간계 전쟁 [Java] (0) | 2023.12.03 |
---|---|
[백준 04388] 받아올림 [Java] (0) | 2023.12.03 |
[백준 03554] Enigmatic Device [Java] (1) | 2023.12.01 |
[백준 03578] Holes [Java] (1) | 2023.12.01 |
[백준 03533] Explicit Formula [Java] (0) | 2023.11.29 |