0pts 求助 玄关
查看原帖
0pts 求助 玄关
1108078
nothing_exe_studio楼主2023/12/18 18:58

题目

pell数列

题目描述

Pell数列a1a_1 , a2a_2, a3a_3 , ...的定义是这样的,a1a_1 = 1, a2a_2 = 2, ... , ana_n = 2 an−1a_{n − 1} + an−2a_{n - 2} (n > 2)。 给出一个正整数k,要求Pell数列的第k项模上32767是多少。

输入格式

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

输出格式

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

样例 #1

样例输入 #1

2
1
8

样例输出 #1

1
408

提示

数据范围:2 ≤ n < 1000,1 ≤ k < 1000000

我代码

#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    while (n--) {
        int k;
        cin >> k;
        int a = 1, b = 2, c;
        for (int i = 3; i <= k; i++) {
            c = (2 * b + a) % 32767;
            a = b;
            b = c;
        }
        cout << c << endl;
    }
}
2023/12/18 18:58
加载中...