首页 > 试题广场 >

递推数列

[编程题]递推数列
  • 热度指数:25897 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。

输入描述:
输入包括5个整数:a0、a1、p、q、k。


输出描述:
第k个数a(k)对10000的模。
示例1

输入

20 1 1 14 5

输出

8359
头像 csyfZhang
发表于 2020-04-19 23:47:06
https://blog.csdn.net/csyifanZhang/article/details/105625010【为了良好的阅读体验,建议到上面】 乍一看直接模拟,暴力递推,索性NK的数据比较水,过起来很容易 #include<iostream> #include<stri 展开全文
头像 用户抉择
发表于 2021-02-04 22:51:28
#include <stdio.h> int main(){     int a0,a1,p,q,k;     int i;    &n 展开全文
头像 亚枫
发表于 2022-03-27 16:14:04
求解思路: 该问题为广义斐波那契数列,若使用暴力递归模拟会超时,可以仅用三个变量交替存储并随时取模。这里给出使用矩阵形式计算的方法,两种方法实质上等价。 an=p∗an−1+q∗an−2a_n=p*a_{n-1} + q*a_{n-2}an​=p∗an−1​+q∗an−2​ 可以改写成矩阵形 展开全文
头像 鱼儿恋上水
发表于 2020-04-05 23:29:16
方法一:矩阵快速幂 #include <iostream> #include <cstring> using namespace std; typedef long long ll; #define _for(i, a, b) for(int i = a; i < 展开全文
头像 CserDu
发表于 2022-02-02 17:13:01
简单递推即可 代码: #include<iostream> using namespace std; const int mod=1e4; int main(){ int a0,a1,p,q,k,a2,cnt; while(~scanf("%d%d%d%d%d",& 展开全文
头像 算法废物
发表于 2023-03-25 18:38:21
#include <iostream> #include <vector> using namespace std; int main() { int a0, a1; int p,q,k; cin>>a0; cin>> 展开全文
头像 牛客964779760号
发表于 2024-03-02 16:52:53
#include<cstdio> using namespace std; int main(){ int a0,a1,p,q,k; scanf("%d%d%d%d%d",&a0,&a1,&p,&q,&k); int ak 展开全文
头像 宁静的冬日
发表于 2022-03-05 22:19:36
【C++】 ">using namespace std; #define MAX 128 int a[MAX]; int p, q; int f(int k) { for (int i = 2; i <= k; i++) { a[i] = (p*a[i - 1] + q * a[i - 展开全文
头像 philos
发表于 2021-02-05 10:28:01
思路 这个只需要按着递推式 去写就好了 #include<iostream> using namespace std; int main(){ int a0, a1, p, q, k; cin >> a0 >> a1 >> p & 展开全文
头像 在考古的小鱼干很有气魄
发表于 2023-03-11 11:18:16
#include <bits/stdc++.h> #define MAX 100 using namespace std; int main(){ int dp[MAX]; int a0,a1,p,q,k; while(cin>>a0>>a1>> 展开全文