DINGA DINGA
Published 2021. 3. 3. 17:52
[백준] 1731번: 추론 C & C++/BOJ
728x90

www.acmicpc.net/problem/1731

 

1731번: 추론

등차가 정수인 등차수열 (어떤 수에 차례대로 일정한 수를 더해서 이루어지는 수열) 은 2개의 숫자로 나타낼 수 있다. P는 수열의 첫 번째 수이고, Q는 그 다음수가 되기 위해 바로 전의 수에 더해

www.acmicpc.net

 

코드

#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