Pell数列

描述Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an ? 1 + an - 2 (n > 2)。
给出一个正整数k,要求Pell数列的第k项模上32767是多少。
输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000)。输出n行,每行输出对应一个输入。输出应是一个非负整数。样例输入

2
1
8

样例输出

1
408

源代码

 #include<stdio.h>
 int pell[1000001];
 int main()
 {
     int k,n,i,j;
     scanf("%d",&n);
      for(j=0;j<n;j++)
      {
          scanf("%d",&k);
		 pell[1]=1;
		 pell[2]=2;
		 for(i=3;i<=k;i++)
         {
             pell[i]=pell[i-2]+2*pell[i-1];//an=2*an-1+an-2
             pell[i]%=32767;
         }
         printf("%d\n",pell[k]);
 }
	 return 0;
}
时间: 2024-07-30 10:11:42

Pell数列的相关文章

1788:Pell数列

1788:Pell数列 查看 提交 统计 提问 总时间限制:  3000ms 内存限制:  65536kB 描述 Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an ? 1 + an - 2 (n > 2).给出一个正整数k,要求Pell数列的第k项模上32767是多少. 输入 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000). 输出 n行,每行输出对应

[NOI题库][POJ2786]Pell数列

总时间限制: 3000ms 内存限制: 65536kB 描述 Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an ? 1 + an - 2 (n > 2).给出一个正整数k,要求Pell数列的第k项模上32767是多少. 输入 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000). 输出 n行,每行输出对应一个输入.输出应是一个非负整数. 样例输入 2 1

Openjudge-NOI题库-Pell数列

题目描述 Description Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an − 1 + an - 2 (n > 2).给出一个正整数k,要求Pell数列的第k项模上32767是多少. 输入输出格式 Input/output 输入: 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000). 输出: n行,每行输出对应一个输入.输出应是一个非负整数. 输

1189:Pell数列

传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1189 [题目描述] 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行,每行输出对应一个输入.输出应是一个非负整数.

递归--练习8--noi1788Pell数列

递归--练习8--noi1788Pell数列 一.心得 5 1. 6 //直接递归Time Limit Exceeded 7 //那就记忆化递归 8 2. 9 直接记忆化递归后还有问题 10 a[k]=2*f(k-1)%32767+f(k-2)%32767; 11 说明这句话超出范围了,所以修改成了如下 12 a[k]=(2*(f(k-1)%32767)+f(k-2)%32767)%32767; 13 就AC了 16 #define Max 1000005 17 using namespace

第6周

6.1 函数 定义: 返回值类型 函数名(参数1类型 参数1名称,参数2类型 参数2名称...) { 语句组(即“函数体”) } 调用函数:函数名 (参数1,参数2...).对函数的调用,也是一个表达式,其值由函数内部的return语句决定. return语句的功能是结束函数的执行,并将返回值作为结果返回.返回值是常量.变量或复杂的表达式均可.如果返回值类型为void,则可以直接写return ;. return语句作为函数的出口,可以在函数中多次出现.多个return语句的返回值可以不同.在哪

用递归和非递归的方法输出斐波那契数列的第n个元素(C语言实现)

费波那契数列(意大利语:Successione di Fibonacci),又译为费波拿契数.斐波那契数列.费氏数列.黄金分割数列. 在数学上,费波那契数列是以递归的方法来定义: {\displaystyle F_{0}=0} {\displaystyle F_{1}=1} {\displaystyle F_{n}=F_{n-1}+F_{n-2}}(n≧2) 用文字来说,就是费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出.首几个费波那契系数是: 0, 1, 1, 2, 3

HDU 5783 Divide the Sequence(数列划分)

HDU 5783 Divide the Sequence(数列划分) Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem Description - 题目描述 Alice has a sequence A, She wants to split A into as much as possible continuous subsequences, satisfy

2015.9.11模拟赛 codevs 4159【hzwer的迷の数列】

题目描述 Description hzwer找了一个人畜无害的迷の数列…… 现在hzwer希望对这个数列进行一些操作,请你来回答hzwer的问题. 操作一:查询第i个数的大小 操作二:把第i个数的大小改成x 操作三:将整个序列反转.即把第i个数放到第n-i+1个. 输入描述 Input Description 输入数据第一行两个数n,m,表示数列长度和操作数. 第二行n个数,表示n个元素初始值. 以下m行,每行开头一个数opr,表示操作种类. opr=1,则后面接一个数i,表示查询第i个数大小.