Pell数列(信息学奥赛一本通-T1202)
生活随笔
收集整理的這篇文章主要介紹了
Pell数列(信息学奥赛一本通-T1202)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
Pell數列a1,a2,a3,...的定義是這樣的,a1=1,a2=2,...,an=2an?1+an?2(n>2)。
給出一個正整數k,要求Pell數列的第k項模上32767是多少。
【輸入】
第1行是測試數據的組數 n,后面跟著 n 行輸入。每組測試數據占 1 行,包括一個正整數k(1≤k<1000000)。
【輸出】
n 行,每行輸出對應一個輸入。輸出應是一個非負整數。
【輸入樣例】
2
1
8
【輸出樣例】
1
408
【源程序】
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #define N 1000010 #define k 32767 using namespace std; int a[N]; int f(int x) {if(a[x]!=0) return a[x];if(x==1) return 1;if(x==2) return 2;return a[x]=(2*(f(x-1))%k+(f(x-2))%k)%k; } int main() {int n,a;cin>>n;for(int i=1;i<=n;i++){cin>>a; cout<<f(a)<<endl;}return 0; }?
總結
以上是生活随笔為你收集整理的Pell数列(信息学奥赛一本通-T1202)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Problem Solving(POJ-
- 下一篇: 判断元素是否存在(信息学奥赛一本通-T1