博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
题目1081:递推数列
阅读量:5367 次
发布时间:2019-06-15

本文共 1821 字,大约阅读时间需要 6 分钟。

题目描述:

给定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的模。

样例输入:
20 1 1 14 5
样例输出:
8359
1 #include 
2 #include
3 #include
4 5 6 using namespace std; 7 8 const int MOD = 10000; 9 10 11 /*12 A(k) = (p q)^(k-1) *a1 13 A(k-1) = (1 0) *a014 */15 16 17 inline void MatrixMul( int m[][2], int n[][2] ) 18 {19 int s[2][2];20 memset(s,0,sizeof(s));21 22 int i;23 int j;24 int k;25 26 for(i = 0; i < 2; i++)27 for(j = 0; j < 2; j++)28 for( k = 0; k < 2; k++)29 s[i][j] += m[i][k]*n[k][j];30 31 for(i = 0; i < 2; i++)32 for(j = 0; j < 2; j++)33 m[i][j] = s[i][j]%MOD;34 35 }36 37 38 void MatrixN ( int m[][2], int n )39 {40 int t[2][2]={
{m[0][0],m[0][1]},{m[1][0],m[1][1]}};41 42 if (n == 1) 43 return;44 else if ( n%2 == 0) 45 { 46 MatrixN(m,n/2); 47 MatrixMul(m,m); 48 }49 else50 { 51 MatrixN(m,n-1); 52 MatrixMul(m,t);53 }54 }55 56 int main(void)57 {58 int a;59 int a0;60 int a1;61 int p;62 int q;63 int k;64 65 int m[2][2];66 67 while (cin >> a0 >>a1 >> p >> q >> k )68 {69 if (k == 0) 70 a = a0;71 else72 if (k == 1)73 a = a1;74 else75 {76 m[0][0] = p%MOD; 77 m[0][1] = q%MOD;78 m[1][0] = 1; 79 m[1][1] = 0;80 81 MatrixN(m,k-1);82 83 a = m[0][0] * a1 + m[0][1] * a0;84 }85 cout<
<

 

转载于:https://www.cnblogs.com/chchche/p/3466054.html

你可能感兴趣的文章
5.Python基础 缩进与选择的关系
查看>>
ACS蚁群算法求解对称TSP旅行商问题的JavaScript实现
查看>>
「学习笔记」类欧几里得算法
查看>>
读书笔记-HBase in Action-第二部分Advanced concepts-(1)HBase table design
查看>>
《程序猿的自我修养》系列技术文章整理收藏
查看>>
Android网络开发之用tcpdump抓包
查看>>
无法识别的属性“targetFramework”。请注意属性名称区分大写和小写。错误解决的方法...
查看>>
站点防止攻击
查看>>
TFS(Team Foundation Server)介绍和入门
查看>>
编程算法基础-一刀切法
查看>>
双slave的server_uuid同样问题
查看>>
node-exporter cpu使用率为负数
查看>>
互联网广告的效果真实性
查看>>
Spatial Database使用时的一次debug(sdo_nn)
查看>>
LightTools 光谱信息导入
查看>>
操作系统的基本概念和功能
查看>>
如何将XSD文件以及引入import的文件生成相应的C#类。
查看>>
当早上醒来,能想到的只有上厕所
查看>>
专业程序员的7个特质
查看>>
OC 继承子类对象调用方法机制 子类对象访问父类中的实例变量
查看>>