递归--练习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 std;
18 int a[Max]; 占的位置是50816kB

如果代码部分对了说明自己有方面没有想到,想好就对了

二、题目

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行,每行输出对应一个输入。输出应是一个非负整数。
样例输入
2
1
8
样例输出
1
408

三、AC代码

 1 /*
 2 noi1788Pell数列
 3 递推表达式:
 4 a1 = 1, a2 = 2, ... , an = 2 * an ? 1 + an - 2 (n > 2)。
 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了
14 */
15 #include <iostream>
16 #define Max 1000005
17 using namespace std;
18 int a[Max];
19 //直接递归Time Limit Exceeded
20 //那就记忆化递归
21 int f(int k){
22     if(a[k]!=0) return a[k];
23     else if(k==1) return 1;
24     else if(2==k) return 2;
25     else return a[k]=(2*(f(k-1)%32767)+f(k-2)%32767)%32767;
26 }
27 int main(){
28     int n;
29     cin>>n;
30     for(int i=1;i<=n;i++){
31         int a;
32         cin>>a;
33         cout<<f(a)<<endl;
34     }
35     return 0;
36 } 

转载于:https://www.cnblogs.com/Renyi-Fan/p/7068045.html

递归--练习8--noi1788Pell数列相关推荐

  1. 九连环的递归实现,以及数列通项

    #include<stdio.h> /*九连环问题是否可以用递归解决创建数学模型:n=9,已知n环,解掉n环 ringDown(n)① 解掉前n-2个环② 用n-1环解掉n环③ 装上前n- ...

  2. 用C++编写函数,分别用非递归和递归计算 Lucas 数列第 n 项

    Lucas 数列:1, 3, 4, 7, 11, 18, 29, 47, 76, 123... 法一 #include<iostream> #include<cmath> us ...

  3. 递归问题:Fibonacci 数列 排列问题

    1.Fibonacci 数列: 1.Fibonacc 数列:输出 Fibonacc 数列的前20项,每行输出4项,Fibonacc 数列的计算使用递归函数实现. 1.1 源码: /*** 1.Fibo ...

  4. 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)

    计算并打印Fibonacci数列每一项时所需的递归调用次数,数列第一项从1开始. 要求: 1)定义表示调用次数的全局变量count: 2)定义用递归方法求Fibonacci数列的Fib()函数. 函数 ...

  5. 6-3 计算Fibonacci数列每一项时所需的递归调用次数

    6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 point(s)) 计算并打印Fibonacci数列每一项时所需的递归调用次数,数列第一项从1开始. 要求: 1)定义表示调用次数 ...

  6. C语言—递归函数 用递归方法编程计算输出Fibonacci数列,同时打印出计算Fibonacci数列每一项时所需的递归调用次数。

    用递归方法编程计算输出Fibonacci数列,同时打印出计算Fibonacci数列每一项时所需的递归调用次数. **输入格式要求:"%d" 提示信息:"Input n:& ...

  7. 【 C 】深入了解递归

    今天看<C和指针>这本书,看到递归这一块,书中讲解递归时候似乎批判了一些书中讲解递归时使用了一些误导的例子,而这些例子不就是我当年接触递归时候看过的例子吗?当时得意洋洋地以为自己掌握了递归 ...

  8. C语言丨函数的递归调用和递归函数

    目录 前言 一.从阶乘引入 二.递归模板 1.递归函数模板 2.举例分析 三.从数学归纳法理解递归 四.更多递归实例 1.用递归方法编程计算Fibonacci数列 题目分析 程序 2.汉诺塔(Hano ...

  9. 递归(二)-------经典递归实例(汉诺塔问题)

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章讨论一个经典的递归实例(Fibonacy数列问题),现在来讨论一下另外一个经典的递归例子:汉诺塔问题: 问题描述:在 ...

最新文章

  1. 深度学习中用于张量重塑的 MLP 和 Transformer 之间的差异图解
  2. 【原】unity3d刀光闪过
  3. html选择器_HTML的id选择器类选择器
  4. Jmeter集合ant进行操作
  5. 计算机学院信息系统,信息系统
  6. oracle数据库备份和还原
  7. cocos2dx3.0关于实现椭圆运动
  8. 《费马大定理》-站在巨人的肩膀上
  9. 尚未解决的10个最困难的数学问题
  10. R语言plotly可视化:使用plotly可视化模型预测真阳性率(True positive)TPR和假阳性率(False positive)FPR在不同阈值(threshold)下的曲线
  11. 作为一个前端,你们的焦虑是什么?如何克服呢?
  12. 牛刀:中国房价的买点还没有…
  13. AtCoder 248_CDE
  14. Laravel 权限控制 Gate Policy
  15. PHP获取微信用户手机号
  16. 分享马化腾在3Q大战后写给腾讯全体员工的一封信
  17. 广东省第三届强网杯Writeup
  18. android fsck,Android Vold 随笔之fsck
  19. 科目一模拟考试错题集
  20. TensorFlow 房价预测

热门文章

  1. Eclipse快捷键:最常用且高效的快捷键
  2. Adding a horizontal separator to a Flex PopUpButton control’s pop up menu (redux)
  3. 改变TabNavigator控件第一个tab标签的偏移量.
  4. 倒车辅助Park Assist
  5. 在caffe上跑自己的数据
  6. 用 WEKA 进行数据挖掘,第 3 部分: 最近邻和服务器端库
  7. 池化方法总结(Pooling)
  8. mac 中登陆mysql忘记密码解决办法
  9. linux通过rinetd工具进行端口映射/转发/重定向
  10. 信息系统项目管理师案例分析