NOI 2.2基本算法之递归和自调用函数 1788:Pell数列 记忆化搜索(dp数组解决斐波那契数列问题)

http://noi.openjudge.cn/ch0202/1788/
代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <map>
#include <cmath>
#include <stack>
#include <vector>
#include <algorithm>
using namespace std;
#define MAX 1000001
int dp[MAX]={0};
int f(int n)
{
    if(n==1||n==2) return n;
    if(dp[n]!=0) return dp[n]%32767;
    dp[n]=(2*f(n-1)%32767 +f(n-2)%32767)%32767;
    return dp[n];
}
int main()
{
    //freopen("input.txt","r",stdin);
    int n,m;
    //memset(dp,-1,sizeof(dp));
    while(cin>>n)
    {
        for(int i=0;i<n;i++)
        {
            cin>>m;
            cout<<f(m)<<endl;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zongza/article/details/80247948