ABC006B - トリボナッチ数列
問題:B - トリボナッチ数列
#include <cstdio> #include <iostream> using namespace std; #define MAX 1000000 #define MOD (int)1e4 + 7 #define FOR(i, a, b) for(int i = (a); i < (b); ++i) int getTribonacci(int x_n) { int num[MAX]; num[0] = num[1] = 0; num[2] = 1; FOR(i, 3, x_n) { num[i] = num[i - 3] + num[i - 2] + num[i - 1]; if (num[i] >= MOD) { num[i] %= MOD; } } return num[x_n - 1]; } int main(void) { int n; scanf ("%d", &n); printf ("%d\n", getTribonacci(n)); }