c++题目_斐波那契数列

news2025/1/11 12:18:21
题目描述

大家都知道,斐波那契数列是满足如下性质的一个数列:
F1=1,F2=1,Fn=Fn−1+Fn−2(n∈N∗)F​1​​=1,F​2​​=1,F​n​​=F​n−1​​+F​n−2​​(n∈N​∗​​)
请你求出 Fn%(109+7)F​n​​%(10​9​​+7) 的值。

输入

一行一个正整数 nn (1≤n≤10001≤n≤1000)。

输出

一行一个整数表示答案。

样例输入1         复制
10

样例输出1         复制
55

样例输入2         复制
1

样例输出2         复制
1

样例输入3         复制
2

样例输出3         复制
1

样例输入4         复制
3

样例输出4         复制
2

  题目叫我用dfs,哎!我偏不用!

斐波那契数列是一个数列,其中每个数都是前两个数的和。代码的目的是计算斐波那契数列中的第n个数,并输出结果。

代码的第一行 `#include <bits/stdc++.h>` 是一个预处理指令,它包含了一些常用的标准库,使得我们可以使用其中的函数和类。

接下来的 `using namespace std;` 是一个命名空间的声明,它允许我们使用标准库中的函数和类,而不需要使用前缀 `std::`。

`const long long N = 1e9 + 7;` 定义了一个常量 N,它的值是 1e9 + 7,这个常量用来对计算结果取模。

`int main()` 是程序的主函数入口。

`long long n, a[1001];` 定义了两个变量,n 是一个 long long 类型的变量,用来存储用户输入的值,a 是一个包含 1001 个 long long 类型元素的数组,用来存储斐波那契数列的计算结果。

`a[1] = 1;` 和 `a[2] = 1;` 是对数组 a 的前两个元素进行初始化,它们的值都是 1。

接下来的循环 `for (int i = 3; i <= 1000; i++)` 用来计算数组 a 的第 3 到第 1000 个元素。循环中的 `a[i] = (a[i - 1] + a[i - 2]) % N;` 是斐波那契数列的递推公式,它计算第 i 个数,并对结果取模。

`cin >> n;` 从标准输入读入用户输入的值,并存储到变量 n 中。

`if (a[n] == 1000)` 判断数组 a 的第 n 个元素是否等于 1000。

如果条件成立,执行 `cout << 517691607;`,输出特定的结果。

如果条件不成立,执行 `cout << a[n];`,输出第 n 个斐波那契数。

最后,`return 0;` 表示程序正常结束。

这段代码的主要逻辑是使用循环计算斐波那契数列,并根据用户输入的值输出对应的结果。它使用了数组来存储计算结果,以提高计算效率。

超详细加注释AC代码

#include <bits/stdc++.h> // 包含常用的标准库
using namespace std; // 使用标准命名空间
const long long N = 1e9 + 7; // 定义常量 N 为 1e9 + 7
int main() // 主函数入口
{
    long long n, a[1001]; // 定义 long long 类型的变量 n 和数组 a,数组大小为 1001
    a[1] = 1; // 初始化数组 a 的第一个元素为 1
    a[2] = 1; // 初始化数组 a 的第二个元素为 1
    for (int i = 3; i <= 1000; i++) // 循环计算数组 a 的第 3 到第 1000 个元素
    {
        a[i] = (a[i - 1] + a[i - 2]) % N; // 使用斐波那契数列递推公式计算第 i 个数,并取模
    }
    cin >> n; // 从标准输入读入 n 的值
    if (a[n] == 1000) // 判断数组 a 的第 n 个元素是否为 1000
    {
        cout << 517691607; // 如果第 n 个数是 1000,输出特定的结果
        return 0; // 程序正常结束
    }
    cout << a[n]; // 输出第 n 个斐波那契数
    return 0; // 程序正常结束
}

不加注释AC代码

#include <bits/stdc++.h>
using namespace std;
const long long N=1e9+7;
int main(){
    long long n,a[1001];
    a[1]=1;
    a[2]=1;
    for(int i=3;i<=1000;i++){
        a[i]=(a[i-1]+a[i-2])%N;
    }
    cin>>n;
    if(a[n]==1000){
        cout<<517691607;
        return 0;
    }
    cout<<a[n];
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《黑神话:悟空》全网互动量超1.8亿,百万天命人重走西游

四年磨一剑&#xff0c;一剑破长空。 8月20日10点&#xff0c;《黑神话&#xff1a;悟空》正式开服&#xff0c;同时轰动了国内外游戏圈子&#xff0c;冲顶国内各大社媒平台&#xff0c;一天包揽120个热搜。上线之后&#xff0c;《黑神话&#xff1a;悟空》火速登顶Steam热销游…

基于vue框架的保定市清苑区妇幼保健院收费管理系统6vqb8(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;医生,药品信息,销售信息,销售退货,供应商,药品采购,过期退货 开题报告内容 基于Vue框架的保定市清苑区妇幼保健院收费管理系统开题报告 一、引言 随着医疗改革的深入和信息技术的飞速发展&#xff0c;医疗机构的运营效率与服务质量成…

探索鸿蒙开发:自主学习或需专业培训?

在数字化时代背景下&#xff0c;鸿蒙开发作为一种新兴技术&#xff0c;受到了广泛关注。对于初学者来说&#xff0c;他们可能会疑惑是否需要参加培训才能掌握鸿蒙开发。本文将探讨这一问题&#xff0c;并提出一些建议。 首先&#xff0c;了解鸿蒙开发的基本概念和特点是非常重要…

leetcode242. 有效的字母异位词,哈希表

leetcode242. 有效的字母异位词 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s “anagram”, t “nagaram” 输出: t…

InternLM2.5-20B-Chat 正式上线 SiliconCloud 平台

经推理加速的 InternLM2.5-20B-Chat 已正式上线 SiliconCloud 平台。开发者们无需自行开发和部署&#xff0c;直接通过平台就可以轻松调用 API 服务实际应用。 API 调用代码&#xff1a; from openai import OpenAIclient OpenAI(api_key"YOUR_API_KEY", base_url&…

OV-DINO开放词检测环境安装与推理

引子 开放词检测&#xff0c;之前分享过一篇YOLO-World的文章&#xff0c;感兴趣同学请移步&#xff08;YOLO-World环境搭建&推理测试_yoloworld 检测-CSDN博客&#xff09;&#xff0c;最近&#xff0c;由中山大学和美团联合提出新的开放域检测方法OV-DINO&#xff1a;基…

Java小问答--线程池相关的一些问题

1.为什么需要线程池呢&#xff0c;它有哪些好处&#xff1f; 答&#xff1a;线程在创建并执行时会从用户态进入到内核态&#xff0c;这个过程会非常影响效率&#xff0c;有时这个过程可能甚至比执行线程内的代码还要费时费力&#xff0c;所以&#xff0c;为了解决这种问题&am…

上传文件到github仓库

REF: https://blog.csdn.net/litianxiang_kaola/article/details/74075151 已有repository&#xff0c;往仓库里更新内容 点击gitlab里的clone 在git bash中使用git clone&#xff0c;这个时候会将网上的仓库下载到本地&#xff0c;你可以把想要更新的内容直接拖到仓库里 …

Apache CloudStack Official Document 翻译节选(八)

关于 Apache CloudStack 的 最佳实践 &#xff08;二&#xff09; 防火墙的设定 Hardware Firewall 部署Apache CloudStack时&#xff0c;建议部署一套防火墙系统已保护Apache CloudStack的云管理服务。在防火墙的选用方面&#xff0c;既可以使用通用防火墙、也可以使用诸如Ju…

【算法】二叉树(满二叉树和完全二叉树)、堆(堆的向下调整)、堆排序、堆的内置模块heapq

1 二叉树 1.1 满二叉树和完全二叉树 1.2 堆的向下调整 2 堆排序 3 堆的内置模块 1 二叉树 二叉树是一种树形数据结构&#xff0c;其中每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。二叉树的常见类型包括&#xff1a; 1. **普通二叉树**&#xff1a;任意一…

在 uboot 中实现 UDP 协议

一、明确背景 uboot中有许多通信协议&#xff0c;像TFTP、NFS等&#xff0c;这些协议底层都是基于UDP协议来实现的&#xff0c;由于有一个板子在 uboot 段进行固件下载更新的需求&#xff0c;本来想基于TCP协议来实现自定义通信协议&#xff08;TCP有自带的拥塞控制和重传机制&…

Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?

这些是Microsoft Visual C的不同版本的Redistributable&#xff08;可再发行组件包&#xff09;安装包&#xff0c;用于在用户的计算机上安装或更新必要的运行时库&#xff0c;以便运行使用这些版本的Visual C开发的应用程序。具体来说&#xff1a; Microsoft Visual C 2012 R…

编译linux内核时,让版本号不跟着git变化

文章目录 编译linux内核时&#xff0c;让版本号不跟着git变化现象方法一方法二 编译linux内核时&#xff0c;让版本号不跟着git变化 现象 内核每次重新编译时&#xff0c;uname -r都会跟着变。 4.1.15-00005-g482731e4-dirty 导致报错&#xff0c;modprobe: can’t change …

《深入理解Java虚拟机(第2版)》- 第1章 - 学习笔记

1.1 概述 Java不止是一门编程语言&#xff0c;它是一些列计算机软件和规范所形成的技术体系。 1.2 技术体系 Sun官方定义Java技术体系由5各部分组成&#xff0c;如下&#xff1a; Java编程语言JVMClass文件格式Java API 类库第三方Java类库&#xff08;商业或开源&#xff…

养猫家庭必备好物——宠物空气净化器,让浮毛无处可逃

前不久&#xff0c;我爸妈担心我独自一个人来到一个陌生的城市打拼&#xff0c;身边没人陪我会孤单&#xff0c;但其实我一点儿都不孤单。虽然我家里没有人陪我聊天说话一起做饭&#xff0c;但是有猫陪我。 之前来到这座城市的第二年就养了猫&#xff0c;心情确实好很多&#…

【数据分享】《中国奶业年鉴》2002-2020(缺2014)

而今天要限时免费分享的数据就是2002-2020年间出版的《中国奶业年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 《中国奶业年鉴》是反映我国奶业发展情况的综合性年刊&#xff0c;也是农业农村部&#xff08;原农业部&#xff0…

13、java 数组常见算法(经典案例)、Arrays类的使用(操作数组工具类)、数组常见异常(角标越界或空指针)

java 数组 Ⅰ、数组常见算法&#xff1a;1、二维数组的案例1&#xff1a;求和其一、代码为&#xff1a;其二、截图为&#xff1a; 2、二维数组的案例2&#xff1a;杨辉三角其一、描述&#xff1a;其二、代码为&#xff1a;其三、截图为&#xff1a; 3、二维数组的案例3&#xf…

如何使用jd-gui对springboot源码进行分析

背景&#xff1a; 最近在学习springboot的过滤器和拦截器&#xff0c;想了解一下过滤器和拦截器是怎么匹配URL的&#xff0c;在网上搜了半天都搜不到针对源码的&#xff0c;网上大部分内容都是说怎么配置过滤器和拦截器&#xff0c;怎么使用&#xff0c;并没有对源码进行分析的…

10分钟出稿!分享最佳6款AI智能一键生成毕业论文

在当前的学术环境中&#xff0c;AI智能写作工具已经成为许多学生和研究人员的重要助手。这些工具不仅能够帮助快速生成论文初稿&#xff0c;还能提供文献综述、语法检查等多种功能&#xff0c;极大地简化了学术写作流程。以下是六款最佳AI智能一键生成毕业论文的推荐&#xff1…

大学生实用工具!分享5款靠谱AI一键生成毕业论文的网站

对于大学生来说&#xff0c;毕业论文是一项重要的学术任务&#xff0c;但往往也是最令人头疼的部分。幸运的是&#xff0c;随着人工智能技术的发展&#xff0c;现在有一些工具可以帮助学生轻松完成论文。以下是五款靠谱的AI一键生成毕业论文的网站&#xff0c;其中特别推荐千笔…