首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go语言递归函数

Go语言递归函数

递归,就是在运行的过程中调用自己。

一个函数调用自己,就叫做递归函数。

构成递归需具备的条件:

1、子问题须与原始问题为同样的事,且更为简单。

2、不能无限制地调用本身,须有个出口,化简为非递归状况处理。

Go编程语言支持递归,即函数调用函数本身。在使用递归时,需要谨慎确定函数的退出条件,否则会造成无限循环。

递归函数可以解决许多数学问题,如计算给定数字阶乘、产生斐波系列等;

数字阶乘

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。

亦即n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

使用一个递归函数由给定数计算阶乘,实例如下:

斐波那契数列(Fibonacci)

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……

这个数列从第3项开始,每一项都等于前两项之和。

使用一个递归函数由给定的一个数产生斐波那契数列,实例如下:

下一篇:

Go语言延迟调用------敬请期待!

看完本文有收获?那就分享给更多人吧

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181008G1PT1V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券