728x90
코드
#include <stdio.h>
main() {
int n, p[50]; //n: 수열의 길이, p: 수열
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &p[i]);
if (p[1] - p[0] == p[2] - p[1]) //등차수열인 경우
printf("%d", p[n - 1] + (p[1] - p[0]));
else //등비수열인 경우
printf("%d", p[n - 1] * (p[1] / p[0]));
}
설명
n을 입력받고, for문을 이용해 n개의 숫자를 배열 p에 저장한다.
수열의 두 번째 숫자와 첫 번째 숫자의 차가 세 번째 숫자와 두 번째 숫자의 차와 같으면 등차수열이므로 수열의 마지막 숫자에 공차를 더한 값을 출력한다.
문제에서 입력값이 등차수열이나 등비수열 중 하나라고 했으므로 else문은 등비수열인 경우로 생각하면 되고, 수열의 마지막 숫자에 공비를 곱한 값을 출력한다.
728x90
'C & C++ > BOJ' 카테고리의 다른 글
[백준] 10809번: 알파벳 찾기 (0) | 2021.03.04 |
---|---|
[백준] 1834번: 나머지와 몫이 같은 수 (0) | 2021.03.04 |
[백준] 2908번: 상수 (0) | 2021.02.25 |
[백준] 13235번: 팰린드롬 (0) | 2021.02.25 |
[백준] 1568번: 새 (0) | 2021.02.25 |