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

go 中的斐波那契数实现以及效率比较

package mainimport ("fmt""math/big""time"
)// FibonacciRecursive 使用递归方法计算斐波那契数列的第n个数
func FibonacciRecursive(n int) *big.Int {if n <= 1 {return big.NewInt(int64(n))}return new(big.Int).Add(FibonacciRecursive(n-1), FibonacciRecursive(n-2))
}// FibonacciIterative 使用迭代方法计算斐波那契数列的第n个数
func FibonacciIterative(n int) *big.Int {if n <= 1 {return big.NewInt(int64(n))}a := big.NewInt(0)b := big.NewInt(1)for i := 2; i <= n; i++ {a, b = b, new(big.Int).Add(a, b)}return b
}func main() {n := 30 // 计算第100个斐波那契数// 测量递归方法的执行时间startRecursive := time.Now()resultRecursive := FibonacciRecursive(n)durationRecursive := time.Since(startRecursive)// 测量迭代方法的执行时间startIterative := time.Now()resultIterative := FibonacciIterative(n)durationIterative := time.Since(startIterative)// 打印结果和执行时间fmt.Printf("第%d个斐波那契数(递归): %s\n", n, resultRecursive)fmt.Printf("递归方法执行时间: %v\n", durationRecursive)fmt.Printf("第%d个斐波那契数(迭代): %s\n", n, resultIterative)fmt.Printf("迭代方法执行时间: %v\n", durationIterative)// 验证两种方法的结果是否相同if resultRecursive.Cmp(resultIterative) == 0 {fmt.Println("两种方法的结果相同")} else {fmt.Println("错误:两种方法的结果不同")}
}

结果:第40个斐波那契数(递归): 102334155
递归方法执行时间: 20.1240473s
第40个斐波那契数(迭代): 102334155
迭代方法执行时间: 0s
两种方法的结果相同

相关文章:

go 中的斐波那契数实现以及效率比较

package mainimport ("fmt""math/big""time" )// FibonacciRecursive 使用递归方法计算斐波那契数列的第n个数 func FibonacciRecursive(n int) *big.Int {if n < 1 {return big.NewInt(int64(n))}return new(big.Int).Add(FibonacciRecursiv…...

基于ASP.NET的小型超市商品管理系统

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图 前言 示 文章底部名片&#xff0c;获取项目的完整演示视频&#xff0c;免费解答技术疑问 项目介绍 小型超市商品管理系统是一款针对小型超市日常运营需求设计的软件解决方案。该系统主要内容有商品类别…...

spdlog学习记录

spdlog Loggers&#xff1a;是 Spdlog 最基本的组件&#xff0c;负责记录日志消息。在 Spdlog 中&#xff0c;一个 Logger 对象代表着一个日志记录器&#xff0c;应用程序可以使用 Logger 对象记录不同级别的日志消息Sinks&#xff1a;决定了日志消息的输出位置。在 Spdlog 中&…...

linux替换某个文件的某段内容命令

假设文件是a.sql 里面的库是abc&#xff0c;我想把这个abc给替换掉&#xff0c;改成hahaha cat a.sql |grep abc|sed -i s/abc/hahaha/g a.sql 如果想写个脚本指定整个文件夹中的内容替换 #!/bin/bash # 检查是否提供了文件夹路径 if [ -z "\$1" ]; then echo &…...

什么是SQL注入攻击?如何防止呢?

目录 一、什么是SQL注入&#xff1f; 二、如何防止&#xff1f; 2.1 使用预编译语句 2.2 使用 ORM 框架 2.3 用户输入校验 一、什么是SQL注入&#xff1f; SQL 注入是一种常见的网络安全漏洞&#xff0c;攻击者通过在应用程序的用户输入中插入恶意的 SQL 代码&#xff…...

consumer 角度讲一下i2c外设

往期内容 I2C子系统专栏&#xff1a; I2C&#xff08;IIC&#xff09;协议讲解-CSDN博客SMBus 协议详解-CSDN博客I2C相关结构体讲解:i2c_adapter、i2c_algorithm、i2c_msg-CSDN博客内核提供的通用I2C设备驱动I2c-dev.c分析&#xff1a;注册篇内核提供的通用I2C设备驱动I2C-dev.…...

面试经典150题刷题记录

数组部分 1. 合并两个有序的子数组 —— 倒序双指针避免覆盖 88. 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使…...

【HarmonyOS NEXT】实现保存base64图片到图库

上篇文章介绍了HarmonyOS NEXT如何保存base64文件到download目录下&#xff0c;本次介绍如何保存base64图片到图库&#xff0c;网络图片保存方式大同小异&#xff0c;先下载图片&#xff0c;然后再保存 phAccessHelper.showAssetsCreationDialog参考官方文档’ ohos.file.pho…...

开题答辩最怕被问什么?教你用ChatGPT轻松准备,稳拿高分!

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 开题答辩是学位论文写作过程中的重要环节&#xff0c;能帮助导师评估你的研究计划是否可行&#xff0c;并对后续写作起到指导作用。很多同学在面对导师提问时会感到紧张&#xff0c;因此提前准备好常见问题的…...

Unity3D功耗和发热分析与优化详解

前言 Unity3D作为广泛使用的游戏开发引擎&#xff0c;在游戏开发过程中&#xff0c;功耗和发热问题一直是开发者需要重点关注的问题。功耗和发热不仅影响用户体验&#xff0c;还可能对设备的硬件寿命造成一定影响。本文将从技术角度详细分析Unity3D游戏在移动设备上的功耗和发…...

深度学习中的掩码介绍

在深度学习中,**掩码(Mask)**通常用于屏蔽掉某些特定部分的数据,以确保模型在训练或推理时不处理无效或无关的输入。掩码的使用场景主要包括处理变长序列、生成模型中的自回归任务、处理填充数据等。掩码可以是二值矩阵(1 表示有效数据,0 表示屏蔽数据),在注意力机制中…...

rust高级进阶总结

文章目录 前言1. Rust生命周期进阶一、不太聪明的生命周期检查&#xff08;一&#xff09;例子1&#xff08;二&#xff09;例子2 二、无界生命周期三、生命周期约束&#xff08;HRTB&#xff09;&#xff08;一&#xff09;语法及含义&#xff08;二&#xff09;综合例子 四、…...

整理—计算机网络

目录 网络OSI模型和TCP/IP模型 应用层有哪些协议 HTTP报文有哪些部分 HTTP常用的状态码 Http 502和 504 的区别 HTTP层请求的类型有哪些&#xff1f; GET和POST的使用场景&#xff0c;有哪些区别&#xff1f; HTTP的长连接 HTTP默认的端口是什么&#xff1f; HTTP1.1怎…...

分布式数据库环境(HBase分布式数据库)的搭建与配置

分布式数据库环境&#xff08;HBase分布式数据库&#xff09;的搭建与配置 1. VMWare安装CentOS7.9.20091.1 下载 CentOS7.9.2009 映像文件1.2启动 VMware WorkstationPro&#xff0c;点击“创建新的虚拟机”1.3在新建虚拟机向导界面选择“典型&#xff08;推荐&#xff09;”1…...

100个JavaWeb(JDBC, Servlet, JSP)毕业设计选题

100个JavaWeb(JDBC, Servlet, JSP)毕业设计选题 教育行业 学生信息管理系统在线考试系统课程管理与选课系统教师评价管理系统图书馆管理系统学生成绩查询系统校园论坛作业提交与批改系统学生考勤管理系统教学资源共享平台 企业管理 员工管理系统考勤打卡系统办公用品申请管…...

05 go语言(golang) - 常量和条件语句

常量 在Go语言中&#xff0c;常量是使用 const 关键字定义的&#xff0c;并且一旦被赋值后&#xff0c;它们的值在程序运行期间不能改变。常量可以是字符、字符串、布尔或数值类型。 基本特性 不可修改&#xff1a;一旦一个常量被定义&#xff0c;它的值就不能被更新。编译时…...

【设计模式】深入理解Python中的适配器模式(Adapter Pattern)

深入理解Python中的适配器模式&#xff08;Adapter Pattern&#xff09; 在软件开发中&#xff0c;常常会遇到需要让不兼容的类或接口协同工作的问题。适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;通过提供一个包装器对象&#xff0c;…...

RuoYi-Vue若依框架-后端设置不登陆访问(白名单)

找到SecurityConfig类 确认自己的需求 /*** anyRequest | 匹配所有请求路径* access | SpringEl表达式结果为true时可以访问* anonymous | 匿名可以访问* denyAll | 用户不能访问* fullyAuthenticated | 用户完全认证可…...

C语言初阶小练习2(三子棋小游戏的实现代码)

这是C语言小游戏三子棋的代码实现 test.c文件是用来测试的部分 game.h文件是用来声明我们说写出的函数 game.c文件是用来编写我们的功能实现函数部分 1.test.c #define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void menu() {printf("***************…...

金融行业合同管理如何利用AI技术进行风险预警?

2024年以来&#xff0c;金融行业的发展主线被锚定&#xff0c;强调了防风险的基调&#xff0c;尤其是系统性风险的防范。金融工作的重点在于实现六个强大&#xff1a;强大的货币、强大的中央银行、强大的金融机构、强大的国际金融中心、强大的金融监管、强大的金融人才队伍。这…...

网盘直链下载助手:一键获取9大网盘真实下载地址,告别限速烦恼

网盘直链下载助手&#xff1a;一键获取9大网盘真实下载地址&#xff0c;告别限速烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中…...

手把手教你搭建低成本雷达测试环境:从暗室搭建到模拟器参数设置(基于国产设备实战)

低成本雷达测试环境搭建实战&#xff1a;国产设备方案与操作指南 在车载毫米波雷达研发领域&#xff0c;测试环节往往占据着项目预算的显著部分。传统方案依赖进口设备和专业暗室&#xff0c;动辄数百万元的投入让许多中小型团队望而却步。本文将揭示一个行业内的真实情况&…...

Vue项目部署后Nginx报500?手把手教你排查并修复‘rewrite or internal redirection cycle‘循环重定向

Vue项目部署后Nginx报500&#xff1f;手把手教你排查并修复rewrite or internal redirection cycle循环重定向 部署Vue项目时遇到Nginx报500错误&#xff0c;日志显示"rewrite or internal redirection cycle"&#xff0c;这可能是许多前端开发者都会遇到的典型问题。…...

ESP32玩转1.8寸LCD屏:用TFT_eSPI库做个桌面小时钟(附完整代码)

ESP32打造高颜值桌面时钟&#xff1a;从TFT_eSPI库到完整项目实战 在创客的世界里&#xff0c;将硬件与代码结合创造出实用又有趣的项目总是令人兴奋。今天我们要用ESP32开发板和1.8寸ST7735驱动的LCD屏幕&#xff0c;打造一个功能完善、界面美观的桌面电子时钟。这个项目不仅适…...

【亲测免费】 DXF轨迹图转G代码工具:高效、精准的数控编程利器

DXF轨迹图转G代码工具&#xff1a;高效、精准的数控编程利器 【下载地址】DXF轨迹图转G代码工具介绍 DXF轨迹图转G代码工具介绍本仓库提供了一个资源文件&#xff0c;用于将DXF格式的轨迹图转换为G代码 项目地址: https://gitcode.com/open-source-toolkit/528cd 项目介…...

【亲测免费】 提升数据传输效率:AccessDatabaseEngine_X64 2010 安装包推荐

提升数据传输效率&#xff1a;AccessDatabaseEngine_X64 2010 安装包推荐 【下载地址】AccessDatabaseEngine_X642010安装包 本仓库提供了一个名为 AccessDatabaseEngine_X64_2010.rar 的资源文件下载。该文件是 Microsoft Access 2010 数据库引擎的可再发行程序包&#xff0c;…...

GoogleTest 使用指南 | 测试模板函数

GoogleTest 使用指南 &#xff5c; 测试模板函数GoogleTest 使用指南 &#xff5c; 测试模板函数GoogleTest 使用指南 &#xff5c; 测试模板函数 模板类和函数由于其泛型特性&#xff0c;需要在不同类型下进行测试&#xff0c;以确保其通用性和正确性。 下面是一个示例。 m…...

Taotoken稳定直连与路由策略保障了我的线上服务SLA

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken稳定直连与路由策略保障了我的线上服务SLA 将线上服务的AI功能迁移到一个新的平台&#xff0c;首要的考量往往是稳定性。当…...

别再只用Hydra了!这5个SSH安全加固技巧,让你的服务器告别暴力破解

5个进阶SSH安全加固策略&#xff1a;从基础防护到企业级防御 当服务器管理员清晨打开日志&#xff0c;发现数百次失败的SSH登录尝试时&#xff0c;那种被窥视的不安感会瞬间袭来。暴力破解不再是理论威胁——互联网扫描机器人每时每刻都在寻找暴露的22端口&#xff0c;而Hydra等…...

微信好友关系检测工具完整指南:如何快速发现谁删除了你

微信好友关系检测工具完整指南&#xff1a;如何快速发现谁删除了你 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends …...