当前位置: 首页 > news >正文

1189.Pell数列

Pell数列a_1,a_2,a_3,...a_1,a_2,a_3,...的定义是这样的,a_1=1,a_2=2,...,a_n=2a_n−1+a_n−2(n>2)a_1=1,a_2=2,...,a_n=2a_n−1+a_n−2(n>2)。

给出一个正整数k,要求Pell数列的第k项模上32767是多少。

输入

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1≤k<1000000)。

输出

n行,每行输出对应一个输入。输出应是一个非负整数。

样例

输入数据 1

2
1
8

 

输出数据 1

1
408

 思路:减少运行时间:

1.用<记录数组>存储数据,不在每次输入k时重新循环,而是在一次循环后可以在数组对应位置直接调用对应索引处的数据(动态规划)

2.记录k的最大值max,若新输入的k小于max,则不再重新生成<记录数组>max索引位置及以前的数据,并且不生成max之后的数据

3.在每次得出一个数据后直接取余        与每次运算不取余,算出最终结果后再取余所得余数相同,因为冗余的可以被32767除去的数什么时候除都行

#include <iostream>
using namespace std;
int arr[1000000] = {0,1,2};
int main()
{int n = 0,k = 0,max =-1;cin >> n;for (int i = 1; i <= n; i++){cin >> k;if(max<k){max = k;for (int j = 1; j <= max; j++){if (j >= 3)arr[j] = (2 * arr[j - 1] + arr[j - 2]) % 32767;}}cout << arr[k] << endl;}return 0;
}


http://www.mrgr.cn/news/58773.html

相关文章:

  • ClickHouse在百度MEG数据中台的落地和优化
  • 享元设计模式在Java坦克游戏中的应用
  • 容器化核心快速入门
  • Linux 共享内存
  • UI自动化测试(app端)4.0
  • Nginx - 实现 TCP/DUP流量的按 IP 动态转发
  • 020:无人机重要知识点名词解释
  • 【Java基础面试题】
  • C#自动化生成控件的时候坐标点的基本概念错误导致的异常
  • Java最全面试题->数据库/中间件->Redis面试题
  • Data Modeling
  • simple framebuffer显示去光标闪烁
  • C++ (六) 输入输出和文件操作:C++的魔法书卷
  • 【74LS138+74LS48组成模拟拔河+数码管显示】2022-5-29
  • SQLI LABS | Less-10 GET-Blind-Time based-double quotes
  • DOSBox汇编编译准备工作及初步编译
  • snmptranslate样例
  • Python流程控制专题:循环与else
  • 瞬间升级!电子文档华丽变身在线题库,效率翻倍✨
  • bug-JavaArrays.fill()隐藏问题
  • Golang | Leetcode Golang题解之第508题出现次数最多的子树元素和
  • 同时支持10m 100m 1000m的phy设备驱动
  • Java进阶篇设计模式之一 ----- 单例模式
  • 【必收藏】史上最全AI工具大盘点!一篇搞定所有需求
  • 经常聊架构模式,设计模式,编程模式,也谈谈“反模式”
  • Python游戏开发超详细第二课/一个小游戏等制作过程(入门级篇共2节)