首页 > 其他分享 >《论取模的艺术》231760:菲波那契数列.递推ver

《论取模的艺术》231760:菲波那契数列.递推ver

时间:2023-12-06 23:57:09浏览次数:33  
标签:ver 231760 int 论取模 namespace long 菲波 运算

原题

错误代码:

#include<bits/stdc++.h>
using namespace std;

long long math(int a)
{
    if(a <= 2){
        return 1;
    }
    long long f0 = 1,f1 = 1,f2;
    for(int i = 3;i <= a;++ i){
        f2 = f1 + f0;
        f0 = f1;
        f1 = f2;
    }
    return f2;
}

int main()
{
    int n,a;
    scanf("%d",&n);
    for(int i = 1;i <= n;++ i){
        scanf("%d",&a);
        printf("%lld\n",math(a) % 1000);
    }
    return 0;    
}

当a大到2000左右的时候,long long也会爆掉,所以不能在结果处取模。
那么我们就在运算过程中取,也就是f2 = f1 + f0这个时候。对于加、减、除法运算来讲,运算过程中取模是无所谓的,这可以严谨的证明,

但我更愿意理解成 本质上就是结果要留的那几位在运算的数。

改进:

#include<bits/stdc++.h>
using namespace std;

int math(int a)
{
    if(a <= 2){
        return 1;
    }
    int f0 = 1,f1 = 1,f2;
    for(int i = 3;i <= a;++ i){
        f2 = (f1 + f0) % 1000;
        f0 = f1;
        f1 = f2;
    }
    return f2;
}

int main()
{
    int n,a;
    scanf("%d",&n);
    for(int i = 1;i <= n;++ i){
        scanf("%d",&a);
        printf("%d\n",math(a));
    }
    return 0;    
}

泪目。

标签:ver,231760,int,论取模,namespace,long,菲波,运算
From: https://www.cnblogs.com/Qwehhh-maimaiDX/p/17880807.html

相关文章

  • R语言SIR模型网络结构扩散过程模拟SIR模型(Susceptible Infected Recovered )代码实例|
    全文链接:http://tecdat.cn/?p=14593最近我们被客户要求撰写关于SIR模型的研究报告,包括一些图形和统计输出。与普通的扩散研究不同,网络扩散开始考虑网络结构对于扩散过程的影响。这里介绍一个使用R模拟网络扩散的例子基本的算法非常简单:生成一个网络:g(V,E)。随机选择一个或几......
  • CMC-ORACLE-函數row_number() over(partition by )函数用法
    row_number()over(partitionby)函数用法row_number()over(partitionby),作为oracle常用的分析函数,身为数据开发时必须要掌握的。不过一段时间不用,难免会有些忘记,今天整理一下一些场景下的用法。现有表(test_rownumber)有如下数据:RUSER(用户名)RID(用户编号)RSAL(用户消费)RD......
  • SQL Server 2022 远程连接(使用阿里云服务器)
    先确定要使用的一个端口号,这里使用5699做实验1.阿里云控制台设置打开安全组-访问规则,入方向添加端口号5699协议类型tcp2.打开电脑防火墙设置,右击入站规则-新建规则协议类型:端口协议和端口:TCP、特定的本地端口操作:允许连接配置文件:全选名称:自定义3.SQLServer2022......
  • 构建第一个事件驱动型 Serverless 应用
    我认为,无服务器技术真的有助于最大限度节省应用开发和部署的时间,并且无服务器技术用可控的成本,实现了我的那些有趣的想法。在我20多年IT从业经历中,一直专注于IT基础架构的设计和搭建,并没有很多编程的经验。入职亚马逊云科技之后,我成为一名开发者布道师,为了了解和传播亚马逊......
  • Intel710驱动代码分析-i40e_driver
    由于研究学习的需要,要对intelXL710网卡的驱动代码进行分析,主要分析其VF的相关代码,整个代码量相当大,有数万行。当然我也是从头开始学,一点一点分析并记录在51cto的博客中,如果大家在阅读过程中发现有错误,请及时提出,另外我会专门开一个专栏,用来记录对每个函数的分析,有些可能会对每行......
  • InvalidVersionSpecError: Invalid version spec: =2.7
    解决方式:将~/anaconda3/lib/python3.7/site-packages/conda/models/version.py中 这一行version_relation_re=re.compile(r'(==|!=|<=|>=|<|>)(?![=<>!])(\S+)$')改成version_relation_re=re.compile(r'(==|!=|<=|>=|<|>|=)(?![=&l......
  • kettle从入门到精通 第二十三课 kettle carte 错误(java.lang.OutOfMemoryError: GC ov
     1、Couldnotemitbufferduetolackofrequests(无法发出缓冲区,因为请求不足。)原因有两点:1)消费者处理数据能力较弱,如表输出步骤。2)消费者没有处理数据,如传递的数据中有字段type=1的数据,这种情况没有处理。解放方案:针对1)采用多线程处理和开启批量提交,如下图所示批量插入......
  • selenium.common.exceptions.SessionNotCreatedException: Message: session not crea
    pyhon调selenium报:selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated:ThisversionofChromeDriveronlysupportsChromeversion103Currentbrowserversionis120.0.xxx.0withbinarypathC:\ProgramFiles\Google\Chrome\......
  • .NET 6 使用Nlog 记录日志到本地并写入SQLserver数据库
    1.安装Nlog对应Nuget包版本NLog:5.0.4NLog.Database:5.0.4NLog.Web.AspNetCore:5.1.4Microsoft.Data.SqlClient:5.0.0(写入SQLServer数据库用的)2.建表SQLCREATETABLE[dbo].[NLog]( [Id][bigint]IDENTITY(1,1)NOTNULL, [Application][nvarchar](50)NOTNULL, [Lo......
  • [LeetCode] 498. Diagonal Traverse 对角线遍历
    题目Givenanmxnmatrixmat,returnanarrayofalltheelementsofthearrayinadiagonalorder.思考最初在纸上写写画画试了很多想法,但都没能解决,真的。。太弱了TT。后来在YT上看了个印度老哥的题解才醍醐灌顶。在此尝试复述他的题解。这题就是说将一个二维矩阵......