有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
给出A,B和N,求f(n)的值。

Input
输入3个数:A,B,N。数字之间用空格分割。(-10000 <= A, B <= 10000, 1 <= N <= 10^9)
Output
输出f(n)的值。
Input示例
3 -1 5
Output示例

6

单单看题的话可能不难,但是有点坑,

1,首先,对7 去余那么循环节的长度最长为49(7*7)(关于这里可以自己好好想一下,提升一下自己的思维)

2,其次,mod运算是求一个正数的值,而c++里面则会算出负值,因此取mod之后加上mod再取mod

AC:代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll v[50];
int main()
{ll n,m,k,i;cin>>n>>m>>k;v[1] = 1;v[2] = 1;for( i = 3;i<=49;i++){v[i] = ((n*v[i-1] + m*v[i-2])%7 + 7)%7;if(v[i] == 1 && v[i-1] ==1) break;}i -= 2;v[0] = v[i];
//  for(int j = 0;j<=i;j++){
//      printf("%d ",v[j]);
//  }printf("\n");printf("%lld",v[k%i]);return 0;
}

转载于:https://www.cnblogs.com/acer1238/p/9165457.html

1126 求递推序列的第N项 (Fnb + mod + 思维)相关推荐

  1. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释

    题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...

  2. 515Nod 1126 求递推序列的第n项【矩阵快速幂】

    有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. Input 输 ...

  3. 51Nod-1126 求递推序列的第N项【递推序列+模除】

    1126 求递推序列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * ...

  4. 求递推序列的第N项 51Nod - 1126

    Description 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n ...

  5. 求递推序列的第N项(51Nod-1126)

    题目 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. 输入 输 ...

  6. [51NOD1126]求递推序列的第n项(矩阵快速幂)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 存在参数a,b为负数的情况.这时候要这么处理: 根据mo ...

  7. 有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。

    问题与代码:有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, -编写程序求出这个序列的前n项之和 文件名称:有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, -编写 ...

  8. 母函数求递推的通项公式(一)

    总是看到有人问递推的通项公式如何求,母函数(Generating function)是一个很好用的工具, 现总结如下以供学习 母函数是组合数学里面的概念,其实就是这坨东西 是不是看不明白,确实有些生疏 ...

  9. 遍历递归树求递推数列通项

    考虑K阶变系数线性递推方程: 现给定初值a1,a2,-,ak和n>k,要求编程打印an,an-1,-,ak+1的值 该问题用常规的迭代法非常容易解决,现在要考虑的是用遍历递归调用树的方法求解.n ...

最新文章

  1. 【Hibernate】hibernate实体关系映射——单边的多对多关系
  2. PHP的pcntl进程控制教程二(pcntl_wait)
  3. DOM-11 【兼容】鼠标行为坐标系、pageXY封装、拖拽函数封装
  4. 开发工具:收集12 个顶级 Bug 跟踪工具,值得收藏!
  5. Tengine 安装配置全过程
  6. 探秘采云间:全链路数据处理工具直击传统DW/BI痛点
  7. 【Linux】tail: inotify cannot be used, reverting to polling: Too many open files
  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的医院信息管理系统
  9. log4j2日志配置
  10. ASCII编码:LinuxWindows
  11. python concurrent.futures包使用,捕获异常
  12. C++ 多态与虚函数面试题
  13. error CS1010 CS8025 CS1012 CS1525 常见文档错误解决
  14. apollo学习之:如何测试canbus模块
  15. sparkling-water的介绍与实践(command line)
  16. 在线photoshop工具网站
  17. 浏览器引擎 Chromium
  18. cati服务器授权信息无效,CATI简易操作.doc
  19. Nginx 服务器配置域名证书
  20. mtk平台android编译命令,MTK 常见的编译命令

热门文章

  1. cookie 跨域问题
  2. 大数据WEB阶段 shiro安全控制框架
  3. bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案
  4. 【STM32】独立看门狗相关函数和类型
  5. 【Linux】一步一步学Linux——setfacl命令(117)
  6. 雪花算法原理_低照度摄像机原理及影响图像效果因素
  7. gitlens突然不显示了_损失百万!预防LED显示屏火灾隐患,从三方面入手
  8. 分段函数插值法c语言代码实验,实验名称插值法汇总.doc
  9. 1202年最新最详细最全的synchronized知识详解
  10. 最新最全vuepress零基础搭建(github搭建+新增插件)