递归迭代区别&斐波那契数列
时间:2021-11-30
本文章向大家介绍递归迭代区别&斐波那契数列,主要包括递归迭代区别&斐波那契数列使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
斐波那契数列
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……
这个数列从第三项开始,每一项都等于前两项之和。
递归在下面这篇文章中已经说的很详细
https://www.cnblogs.com/byErichas/p/15598504.html
今天来复习下迭代
以斐波那契数列为例子
迭代实现输出第n位的斐波那契数
int fib(int n){ if(n>1) return fib(n-1) + fib(n-2); else return n; // n = 0, 1时给出recursion终止条件 } //斐波那契数列递归 int main(){ int n,r; scanf("%d",&n); r = fib(n); printf("%d",r); //输出第n位的斐波那契数 }
递归实现输出第n位的斐波那契数
#include<stdio.h> int fib(int n){ int i, temp0, temp1, temp2; if(n<=1) return n; temp1 = 0; temp2 = 1; for(i = 2; i <= n; i++){ temp0 = temp1 + temp2; temp1 = temp2; temp2 = temp0; } return temp0; } //斐波那契数量迭代 int main(){ int n,r; scanf("%d",&n); r = fib(n); printf("%d",r); //输出第n位的斐波那契数 }
迭代与普通循环的区别是:迭代时,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
递归与普通循环的区别是:循环是有去无回,而递归则是有去有回最后一层满足终止条件后,又开始一层层的返回。
Python写就更简单了
def fib(n): if n > 1: return fib(n - 1) + fib(n - 2) else: return n def fib2(n): temp0 = 0 temp1 = 1 for i in range(2, n + 1): temp = temp0 + temp1 temp0 = temp1 temp1 = temp return temp if __name__ == '__main__': n = int(input()) print(fib(n)) print(fib2(n))
原文地址:https://www.cnblogs.com/byErichas/p/15624718.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- types 和 @types 是什么?
- 一次绕过waf进行xss的经历
- opencv+python制作硬核七夕礼物
- 身份验证器是如何验证我们的身份?
- 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」
- MongoDB 案例:Document failed validation 错误
- 利用GoogleAppsScript自动回复短信实现保号
- 用php来查询graphql
- 利用树莓派的摄像模块实现“扫码枪”
- n ../../node_modules/@storybook/channels/dist/index.d.ts:25:9 - error TS1086: An accessor cannot ...
- 要不来重新认识Spring事务?三歪又学到了
- 读者问:学完SSM,该学什么呢?
- go-zero 微服务框架介绍
- redis-cli 未找到命令的一个解决方式
- 【每日一题】42. Trapping Rain Water