• 信息学奥赛一本通 1189:Pell数列


    在这里插入图片描述

    #include 
    using namespace std;
    int arr[1000001];
    int main(){
        int n;
        cin>>n;
        arr[1]=0;
        arr[1]=1;
        arr[2]=2;
        int a;
        int brr[n];
        for (int  i = 3; i <=1000000; i++)
        {
            arr[i]=(2*arr[i-1]+arr[i-2])%32767;
        }
        
        for(int i=0;i<n;i++){
            cin>>a;
            brr[i]=arr[a];
        }
        for(int i=0;i<n;i++){
            cout<<brr[i]<<endl;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    这段代码使用了递推的思想,预先计算出一个较大范围内的数列,并根据输入的数字查询相应的数列元素。

    代码逻辑如下:

    1. 包含bits/stdc++.h头文件,方便使用标准模板库(STL)。
    2. 主函数main开始。
    3. 输入一个整数n,表示要查询的数字个数。
    4. 声明一个整型数组arr,大小为1000001,用于存储数列元素。
    5. 初始化数列的前3个元素。
    6. 使用循环从第4个元素开始计算数列中的元素并保存到数组arr中。
    7. 声明一个整型数组brr,大小为n,用于存储每次查询的结果。
    8. 使用循环读入n个要查询的数字,并将对应位置的数列元素存储到数组brr中。
    9. 使用循环遍历数组brr,输出每次查询的结果。
    10. 返回0,表示程序正常结束。

    这段代码的主要思路是先计算出数列中的元素,再根据需要查询的数字查找相应的数列元素进行输出。在计算数列元素时,使用了递推的思想,根据前两个元素和当前元素的值来计算下一个元素的值,使用数组存储结果以便后续查询。在循环读入需要查询的数字时,直接通过数组下标查找对应的数列元素,并将结果存储到数组brr中。最后,使用遍历数组的方式输出查询结果。

  • 相关阅读:
    Windows下安装RabbitMQ
    SparkSQL的UDF及分析案例,220726,,
    【21天Python进阶学习挑战赛】[day3]json标准库大总结
    2022.07.15 暑假集训 个人排位赛(十)
    Jmeter性能测试 —— TPS拐点寻找
    JVM之方法区
    Day04:Java数据类型
    LLM 09-新的模型架构
    堪比JMeter的.Net压测工具 - Crank 入门篇
    【python】超类简介__new__和__init__
  • 原文地址:https://blog.csdn.net/qq_45083002/article/details/132719365