파도반 수열
https://www.acmicpc.net/problem/9461
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 78451 | 34447 | 28236 | 42.567% |
문제
오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다.
그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다.
나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다.
파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다.
N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100)
출력
각 테스트 케이스마다 P(N)을 출력한다.
예제 입력 1
2 6 12
예제 출력 1
3 16
출처
ICPC > Regionals > Asia Pacific > Korea > Asia Regional – Daejeon 2013 G번
알고리즘 분류
생각보다 점화식을 찾는데 오래 걸렸다.
통과된 코드
#include <iostream> using namespace std; int T, N; // int형 범위를 넘어갈 수 있다. long long int arr[101] = {0, 1, 1, 1, 2, 2}; int main() { cin >> T; // 테스트 케이스 만큼 반복 for (int i = 0; i < T; i++) { cin >> N; for (int j = 6; j <= N; j++) { // 값이 있다면 연산할 필요가 없다. if (arr[j] == 0) arr[j] = arr[j - 1] + arr[j - 5]; } // 결과 출력 cout << arr[N] << "\n"; } return 0; }
Good day! Do you know if they make any plugins to help with Search Engine Optimization? I’m trying to get my site to rank for
some targeted keywords but I’m not seeing very good success.
If you know of any please share. Cheers! I saw similar article here:
Warm blankets