Go语言 递归函数
2022-04-06 15:34
1341 查看
Go语言 递归函数
引言
递归函数对于解决数学上的问题是非常有用的,比如计算阶乘,生成斐波那契数列等.
1. 什么是递归函数
2. 数字阶乘
3. 斐波那契数列(Fibonacci)
1. 什么是递归函数
- 递归,就是在运行的过程中调用自己
- 一个函数调用自己,就叫做递归函数
构成递归需具备的条件:
子问题须与原始问题为同样的事,且更为简单; 不能无限制地调用本身,须有个出口,化简为非递归状况处理。
2. 数字阶乘
- 阶乘是基斯顿·卡曼于 1808 年发明的运算符号,是数学术语
- 一个正整数的阶乘(factorial)是
所有小于及等于该数的正整数的积,并且0的阶乘为1
- 自然数n的阶乘写作
n!
。
package main import "fmt" func factorial(i int) int { if i <= 1 { return 1 } return i * factorial(i-1) } func main() { var i int = 7 fmt.Printf("Factorial of %d is %d\n", i, factorial(i)) } //输出结果如下: Factorial of 7 is 5040
3. 斐波那契数列(Fibonacci)
这个数列从第3项开始,每一项都等于前两项之和。
package main import "fmt" func fibonaci(i int) int { if i == 0 { return 0 } if i == 1 { return 1 } return fibonaci(i-1) + fibonaci(i-2) } func main() { var i int for i = 0; i < 10; i++ { fmt.Printf("%d\n", fibonaci(i)) } } //输出结果如下: 0 1 1 2 3 5 8 13 21 34
相关文章推荐
- Go语言 映射(map)
- Django-初见
- Golang | 接口
- 设计模式之:GoF的23种设计模式分类对比(表格)
- Go 里面的 ^ 和 &^
- Go 语言 结构体
- Go 语言指针
- Go 语言 切片的使用(增删改查)
- Go 语言函数
- Go 语言控制台输入&生成随机数
- GO 入门题目--不断更新中
- Django基础六之cookie和session
- Go 语言运算符
- Django基础五之Ajax
- Go值类型和引用类型+作用域+空白标识符+常量
- 新闻速读 > Google Chrome:曾经的屠龙者如今也变成了龙
- Django基础二静态文件和ORM
- GO语言基础(结构+语法+类型+变量)
- Django基础一安装、创建项目和目录结构
- 字节一面:go的协程相比线程,轻量在哪?