当前位置: 首页 > news >正文

C++ B (1124) : 斐波那契数列第n项Plus

文章目录

  • 一、题目描述
  • 二、参考代码


一、题目描述

在这里插入图片描述


二、参考代码

#include <iostream>
#include <vector>using namespace std;const long long MOD = 1e9 + 7; // 取模的值// 定义矩阵类
class Matrix {
public:vector<vector<long long>> data;// 构造函数,创建一个大小为 size x size 的矩阵,初始化为0Matrix(int size) : data(size, vector<long long>(size, 0)) {}// 矩阵乘法Matrix operator*(const Matrix& other) const {int size = data.size();Matrix result(size);for (int i = 0; i < size; ++i) {for (int j = 0; j < size; ++j) {for (int k = 0; k < size; ++k) {result.data[i][j] += (data[i][k] * other.data[k][j]) % MOD;result.data[i][j] %= MOD; // 取模运算}}}return result;}
};// 计算矩阵快速幂
Matrix matrixPower(Matrix base, int n) {int size = base.data.size();Matrix result(size);// 初始化为单位矩阵for (int i = 0; i < size; ++i) {result.data[i][i] = 1;}// 循环计算幂while (n > 0) {if (n & 1) {result = result * base;}base = base * base;n >>= 1;}return result;
}// 计算斐波那契数列的第 n 项
long long fibonacci(int n) {if (n <= 0) return 0;if (n == 1) return 1;Matrix base(2);base.data[0][0] = 1;base.data[0][1] = 1;base.data[1][0] = 1;base.data[1][1] = 0;Matrix result = matrixPower(base, n - 1);return result.data[0][0] % MOD;
}int main() {int n;while (cin >> n){long long result = fibonacci(n);cout << result << endl;}return 0;
}

相关文章:

  • SpringBoot+百度地图+Mysql实现中国地图可视化
  • RabbitMQ-直连交换机(direct)使用方法
  • Linux--线程的分离、线程库的地址关系的理解、线程的简单封装(二)
  • Kubernetes 之 Secret
  • App开发前端开发语言:深度解析与应用探索
  • MySQL—函数—函数小结
  • 民国漫画杂志《时代漫画》第33期.PDF
  • 必看——怎么让网站实现HTTPS访问?
  • 用java实现客服聊天+网络爬虫下载音乐(java网络编程,io,多线程)
  • 安卓组合控件(底部标签栏、顶部导航栏、增强型列表、升级版翻页)
  • Java 内存模型
  • Java中的JDBC如何连接数据库并执行操作
  • Windows API 速查
  • 每日一题——Java编程练习题
  • Vue3集成Phaser-飞机大战游戏(设计与源码)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CentOS6 编译安装 redis-3.2.3
  • codis proxy处理流程
  • css属性的继承、初识值、计算值、当前值、应用值
  • Git初体验
  • HTTP--网络协议分层,http历史(二)
  • Java小白进阶笔记(3)-初级面向对象
  • oschina
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 仿天猫超市收藏抛物线动画工具库
  • 服务器从安装到部署全过程(二)
  • 构造函数(constructor)与原型链(prototype)关系
  • 那些年我们用过的显示性能指标
  • 全栈开发——Linux
  • 微信支付JSAPI,实测!终极方案
  • 学习笔记TF060:图像语音结合,看图说话
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​如何防止网络攻击?
  • ​水经微图Web1.5.0版即将上线
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (6)添加vue-cookie
  • (8)STL算法之替换
  • (SpringBoot)第七章:SpringBoot日志文件
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (理论篇)httpmoudle和httphandler一览
  • (学习日记)2024.01.19
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .Net 基于IIS部署blazor webassembly或WebApi
  • .NetCore项目nginx发布
  • .NET单元测试
  • .Net多线程Threading相关详解
  • .net实现客户区延伸至至非客户区
  • []指针