2624 - C. 兔子的难题

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

题目输入

题目输出

输入/输出样例

输入格式


                        

输出格式


                        

C++解答

#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
const int MOD = int(1e9)+7;
int dp[1005][1005];
int N;
void solve() {
    dp[0][0] = 1;
    for (int i = 1; i <= 1000; ++i)
        {
          for (int j = 0; j <= 1000; ++j)
          {
            if (j + 1 <= 1000)
            {
                dp[i][j] = dp[i-1][j+1];
                dp[i][j] %= MOD;
            }
            if (j - 2 >= 0)
            {
                dp[i][j] += dp[i-1][j-2];
                dp[i][j] %= MOD;
                if (j == 2)
                {
                    dp[i][j] += dp[i-1][j-2];
                    dp[i][j] %= MOD;
                }
            }
         }
    }
}
int main() {
    solve();
    while (scanf("%d", &N), N!=-1)
        {
        printf("%d\n", dp[N][0]);
        }
    return 0;
}