基础——递归recursion 与 迭代iteration

本文探讨了递归和迭代的概念,通过斐波那契数列和阶乘的例子进行阐述。递归通过函数自身调用来实现循环,而迭代则使用循环结构。虽然递归具有清晰的结构和良好的可读性,但可能消耗大量时间和内存。相比之下,迭代通常更加高效。文章还提及了递归和迭代之间的联系,并展示了两者在实现斐波那契数列上的代码对比。
摘要由CSDN通过智能技术生成

递归和迭代都是循环的一种

  1. 递归:函数自己重复调用自己实现循环。典例:斐波那契
  2. 迭代:在函数内某段代码实现循环。典例:从1递增到100,求和。迭代则使用计数器结束循环

提到递归recursion,最容易令人想起的是…兔子繁衍 → 斐波那契数列(Fibonacci sequence),又称黄金分割数列,定义为:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…

由意大利数学家列昂纳多·斐波那契(Leonardoda Fibonacci)提出。(剩下自行baidu吧)

这是他老人家
这里写图片描述我不知道为什么要放他照片…显得文章没那么单调吧

#include<stdio.h>
int Fi (int i)  //Fi for Fibonacci
{
    if( i < 2 )
        return i == 0 ? 0 : 1;

    return Fi (i - 1) + Fi (i - 2);  //函数自己在调用自己
}

in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值