两种方式实现斐波那契数列

C语言两种方式实现斐波那契数列(递归和迭代) // // Created by leo on 2020/12/11. // #include <stdio.h> /* * 斐波那契数列 * 规则 f(n)=f(n-1)+f(n-2) * 初值 f(0)=0,f(1)=1 (终止条件) */ unsigned int Fibonacci(unsigned int n) { if (n == 1 || n == 0) { return n; } else { return Fibonacci(n - 1) 阅读详情

/递归实现斐波那契数列,问题有点大啊,没用数组做优化之前,太慢了,明显可以感觉到算个第30位都费劲的要死
long long Recur_Fibonacci(int n,long long arr[])
{
if(arr[n] != 0)//减少重复计算
{
return arr[n];
}
if(n <= 0)
{
return -1;//输入不合法
}
else if(n == 1||n == 2)
{
arr[n] = 1;
}
else
{
arr[n] = Recur_Fibonacci(n-1,arr)+Recur_Fibonacci(n-2,arr);//减少重复计算
}
return arr[n];
}

//循环实现斐波那契数列比递归要好一些,但是也就那样吧
long long Nice_Fibonacci(int n)
{
if(n <= 0)
{
return -1;//输入不合法
}
int f1 = 1;
int f2 = 1;
int f3 = 1;
if(n > 2)
{
while((n - 2))
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
n–;
}
}
return f3;
}

关于对鱼眼相机图片进行畸变校正的两种思路 鱼眼畸变主要表现为径向畸变(Radial Distortion),图像中心正常,边缘向外拉伸。畸变模型通常基于入射角θ\thetaθ(光线与光学轴夹角)和图像半径rrr的关系。等距投影(Equidistant Projection)rdfθrd​fθ,其中rdr_drd​为畸变图像半径,fff为焦距,θ\thetaθ为入射角。等立体角投影(Equisolid Angle Projection)rd2fsin⁡θ2rd​2fsinθ/2。 阅读详情

相关推荐

深度学习暑期科研项目(两个月发EI论文)

对本科生而言,越早接触系统的科研训练开始上手科研项目,就越能在未来的升学求职中占据很大的优势。暑假是提升个人简历、丰富科研经历的最佳时期!哈尔滨工业大学博士师兄也会在8月1日开始带大家上手科研项目,并撰写发表EI会议论文。

Magnolia_He的博客 1444

斐波那契数列的两种方法(递归和循环)

斐波那契数列一、定义二、递归实现斐波那契数列三、循环实现斐波那契数列四、 学习递归算法的体会 一、定义 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

qq_34270874的博客 1万+

信捷 XDH Ethercat 正负极限配置详解与实战技巧

本文详细解析了信捷XDH系列PLC通过EtherCAT总线配置伺服电机正负硬极限的完整流程与实战技巧。内容涵盖硬件开关选型安装、EtherCAT IO信号映射、软件参数设置(包括关键的极性配置)、调试验证方法,以及硬极限与软极限的协同策略。重点阐述了如何避免常见配置错误,确保运动控制系统的最后一道物理安全防线可靠有效,为工程师提供从理论到实践的全面指导。

wdx012345的博客 601

斐波那契数列的两种简单实现

斐波那契数列的两种实现

嘒彼小星的笔记 2001

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 265

【知识分享】高速印刷电路板(PCB)寄生参数计算指南

对于高速PCB设计而言,寄生参数一直是令人讨厌的问题,它们会悄悄潜入PCB并在电路中造成严重的破坏,具体来说,它们是渗透到高速电路中的隐藏杂散电容器和电感器,包括由封装引线和长走线形成的电感器、PCB焊盘对金属平面形成的电容器、走线之间形成的电容器等等。

一只豌豆象的博客 1782

斐波那契数列的两种方法实现

//该算法是Java编写的斐波那契数列 public class FibonaQi { public static void main(String[] args) { System.out.println("采用循环实现斐波那契数列!"); System.out.println("第4项斐波那契数列的值为:" + fibonacci(4)); ...

Running-小猛的博客 1714

Modbus RTU 详解 + FreeMODBUS移植(附项目源码)

本文全面解析Modbus RTU通信协议,详细介绍其报文格式、功能码定义及典型应用场景,并手把手指导如何将FreeMODBUS协议栈移植到嵌入式平台。内容涵盖从底层硬件驱动配置、协议栈移植到主机/从机通信测试的全流程,重点讲解移植过程中的常见问题及解决方案。文章最后提供经过实测的完整项目源码,帮助开发者快速实现稳定的Modbus RTU通信功能。

Bit_Dong的博客 2931

斐波那契数列的两种方法

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 这个数列从第3项开始,每一项都等于前两项之和。 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式:F(...

aby_byy的博客 1617

26届数字IC秋招笔试面试全攻略 - CPU基础架构-数字IC设计专家

本文介绍了CPU基础架构的三大关键技术:流水线、冒险处理和指令集设计。首先解析了经典五级流水线结构(取指、译码、执行、访存、写回)及其性能指标。其次详细阐述了三种流水线冒险(数据、控制、结构)及解决方案,如数据前递、分支预测等。最后对比了RISC与CISC指令集特点,并以RISC-V为例说明指令格式设计原则。全文系统梳理了CPU核心架构知识,为数字IC设计提供重要参考。

2301_79143213的博客 931

【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)

随着打印技术的快速发展,镭射打印技术也开始得到越来越广泛的应用。这种技术可以被用于在木材、塑料、皮革、织物等各种材料上进行图形打印,并且通常比传统机器更快、更准确和更灵活。

嵌入式技术开发 7200

斐波那契数列的两种实现方式(递归和循环)

public class Fibonacci { public static long F(int N){ int f0 = 0; int f1 = 1; int fn = 0; if(N == 0) return f0; if(N == 1) return f1; for(int i = 1; i &lt; N; i++){ fn = f0 + f1; ...

Kingsly_Liang的博客 2244

Jenkins自动化部署服务到Kubernetes环境

通过Jenkins实现自动化部署可以大大提高软件交付的效率和质量。本文介绍的部署流程涵盖了从代码编译、Maven依赖管理、Docker镜像构建到Kubernetes部署的完整流程,并提供了通知机制以便及时了解部署状态。特别需要注意的是Maven与私服的配置,这是确保构建过程能够正常访问依赖包的关键。通过Jenkins的凭据管理功能,可以安全地管理私服的认证信息,避免敏感信息泄露。在实际应用中,您可能需要根据具体的项目需求和环境特点调整部署脚本。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 528

斐波那契数列的两种实现方式 C++实现

Fibonacci 数列是学习过程中常见题型,循环解决更为快捷,递归思想十公分重要,本文将对两种方式进行分析,快来看看吧!

Alkaid#3529的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

斐波那契数列的两种实现方式

#include <iostream> using namespace std;//斐波那契数列递归与循环的两种实现 long long Fibonacci(unsigned int n){ //递归方法(由于存在大量重复计算效率非常低)不推荐 if(n<=0) return 0; if(n==1) ...

abc724542881的博客 205

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

实现斐波那契数列的两种方式

实现斐波那契数列(js) 方式一: 使用递归实现 // 0,1,1,2,3,5,8.... 斐波那契数列 function fibo(n) { let N if (n == 1) { N = 0 } else if(n == 2) { N = 1 }else if (n >= 3) { N = fibo(n - 2) + fibo(n - 1) }

CarryNo1的博客 267

斐波那契数列 的两种实现方式(Java)

import java.util.Scanner; /* 斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2) 显然这是一个线性递推数列。 */ public cla...

abcdef00001111234的博客 145

[C语言]——斐波那契数列的两种实现方式(递归与非递归)

文章目录一、什么是斐波那契数列?二、代码实现1.递归实现2.非递归 一、什么是斐波那契数列? 斐波那契数列指的是这样一个数列: 0,1,1,2,3,5,8,13,21,34… 这个数列从第3项开始,每一项都等于前两项之和。 递推方程: F(0)=0,F(1)=1 F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*) 二、代码实现 1.递归实现 代码如下: #include "stdio.h" int fib(int n) { if(n<2) return n; else

攻城狮Jana的学习博客 1177

斐波那契数列 的两种实现方式

一、先要回答一个问题:什么是婓波那契数列?答案在这里:http://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97 二、看代码: 1)第一方法:递归实现: public static void main(String[] args) { for (int i = 0; i &lt...

博海软件 338

Python 两种方式实现斐波那契数列

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368...... 这个数列从第3项开始,每一项都等于前两项之和。 递归的方式实现: def fn(n): if n==1: ret...

weixin_30342827的博客 192

js 实现 创建函数,计算斐波那契数列的第n项,使用递归和普通函数两种方式

方法一: function fn(n){ if(n==1 || n==2){ return 1; }else { return fn(n-1)+fn(n-2); } } var res=fn(50); console.log(res); 方法二: function fn2(n){ var a=1,b=1,c=0; for(...

Mr_Chao的博客 4396

Java实现“斐波那契数列”的两种方式——数组与优化递归

本文使用了三种方式实现了斐波那契数列——数组、递归、优化递归。 此文重点是对斐波那契数列的实现方式效率的比较及优化。 一、数组实现斐波那契数列 测试代码: public class ArrayTest { public static void main(String[] args) { // 开始计时 long start = System.currentTimeMillis(); // 斐波那契 long[] array = new

专注于优雅与性能的未来架构师 6348

C语言:斐波那契数列的两种实现方式

斐波那契数列的两种实现方式 方法一 int Fib(int n) { if (n <= 2) return 1; else return Fib(n-1)+Fib(n-2); } int main() { int n = 0; scanf("%d",&n); int ret = Fib(n); printf("%d\n",ret); } 该方法效率低下,计算时间太长,能用 方法二 int Fib(int n) { int a = 1; int b = 1

weixin_42228895的博客 441
上一篇: 剑指offer——空格替换
下一篇: 斐波那契相关的问题
恩嗯
博客等级 码龄8年 47粉丝 112原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值