------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include<stdio.h>

#define n 101

long long dp[n] = { 0,1,1,1,2,2 };

void podo()

{

for (int i = 6; i <= 100; i++)

{

dp[i] = dp[i - 5] + dp[i - 1];   //  <-- 파도반 수열의 엔진

}

}

int main()

{

podo();

int arr[100] = { 0 };

int test;

scanf("%d",&test);

for (int i = 1; i <= test; i++)

scanf("%d",&arr[i]);

for (int i = 1; i <= test; i++)

printf("%lld\n",dp[arr[i]]);

return 0;

}


파도반 수열은 규칙이 딱 있다. 

dp[i] = dp [i - 5] + dp[i - 1]


예를 들어서  8번째 파도반 수열의 수를 구한다면  3번째 수 + 7번째 수를 더해주면 된다,

'알고리즘 > DP(Dynamic Programming)' 카테고리의 다른 글

연속합 (DP)  (2) 2016.12.22
1로 만들기 (DP)  (0) 2016.12.21
피보나치 수열 2 (DP)  (0) 2016.12.21
피보나치 수열 1 (DP)  (0) 2016.12.21

+ Recent posts