golang学习笔记——递归函数

news2024/11/26 6:20:27

递归函数

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

语法格式如下:

func recursion() {
   recursion() /* 函数调用自身 */
}

func main() {
   recursion()
}

阶乘

在这里插入图片描述

阶乘最初的定义就是小于等于某个正整数的所有正整数的乘积,5 的阶乘(记作 5!)= 5 × 4 × 3 × 2 × 1,这个很好理解(这个符号是1808年才由法国数学家发明)。最初是和排列数的计算有关,从而推广到0!=1(这个是定义的,但是不这样排列数的计算就有问题,同时也给很多公式带来方便)。

package main

import "fmt"

func Factorial(n uint64)(result uint64) {
    if (n > 0) {
        result = n * Factorial(n-1)
        return result
    }
    return 1
}

func main() {  
    var i int = 15
    fmt.Printf("%d 的阶乘是 %d\n", i, Factorial(uint64(i)))
}

斐波那契数列

在这里插入图片描述
以下实例通过 Go 语言的递归函数实现斐波那契数列:

package main

import "fmt"

func fibonacci(n int) int {
  if n < 2 {
   return n
  }
  return fibonacci(n-2) + fibonacci(n-1)
}

func main() {
    fmt.Printf("%d\t", fibonacci(10))
}

输出55

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1219433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIA-综合实验(三)

综合实验&#xff08;三&#xff09; 1 实验拓扑2 IP 规划3 实验需求一、福州思博网络规划如下&#xff1a;二、上海思博网络规划如下&#xff1a;三、福州思博与上海思博网络互联四、网络优化 4 配置思路4.1 福州思博配置在 SW1、SW2、SW3 上配置交换网络SW1、SW2、SW3 运行 S…

动态规划专项---数字三角形模型

文章目录 摘花生最低通行费方格取数传纸条 一、摘花生OJ链接 本题思路:本题是dp问题中比较简单的模型,dp问题考虑方式&#xff1a;状态表示:集合&#xff1a;定义f[i][j]为从(1, 1)到达(i, j)的所有方案&#xff0c;属性&#xff1a;最大值。状态转移:(i, j)从(i-1, j)即上方…

经纬恒润为国产化芯片的AoU功能安全软件赋能

近日&#xff0c;经纬恒润成功为旗芯微FC4150开发出符合功能安全要求的AoU功能安全组件&#xff0c;并适配到门模块配套产品&#xff0c;为国产化芯片完善了符合功能安全的生态链。 AoU&#xff08;Assumption of Use,安全假设&#xff09;需求是芯片厂商在safety manual对最终…

场效应管(MOSFET)笔记-nmos和pmos仿真测试

一、场效应管的介绍 场效应管是一种半导体器件&#xff0c;它可以用来放大或者控制电流。根据结构的不同&#xff0c;场效应管可以分为结型场效应管&#xff08;JFET&#xff09;和绝缘栅场效应管&#xff08;MOSFET&#xff09;。其中&#xff0c;JFET是由一个pn结构组成&…

口袋参谋:一键查询任意买家旺旺号,规避被降权风险!

​ 对于淘宝天猫的卖家来说&#xff0c;查买家旺旺号是维护淘宝卖家销售权益的一种途径。 卖家通过查买家的旺旺号&#xff0c;从而得知买家的账号信息、买家信誉以及中差评等内容&#xff0c;减少淘宝卖家受骗上当的机率。 【查降权号】功能&#xff1a; 针对淘宝订单可一键查…

设计模式篇---装饰模式

文章目录 概念结构实例总结 概念 装饰模式&#xff1a;动态的给一个对象增加一些额外的职责。就扩展功能而言&#xff0c;装饰模式提供了 一种比使用子类更加灵活的替代方案。 装饰模式是一种对象结构型模式&#xff0c;它以对客户透明的方式动态地给一个对象附加上更多的责任…

MinIO实现数据迁移(mc)

运行两个版本的minio version: 2.3 services: # 新版本 minio2023: image: minio/minio:RELEASE.2022-06-20T23-13-45Z.fips container_name: minio2023 restart: always environment: - MINIO_ACCESS_KEYminioadmin - MINIO_SECRET_KEYminioadmin - MINIO_ROOT_USERminioadm…

C/C++轻量级并发TCP服务器框架Zinx-框架开发003:转大写字母输出+责任链模式+代码重构思路及实现

文章目录 1 添加转大写字母输出功能2 责任链模式2.1 责任链的设计2.2 责任链的实现2.3 责任链的测试 3 代码重构3.1 类图设计3.2 重构设计 - 头文件3.3 重构实现 1 添加转大写字母输出功能 功能流程&#xff1a; stdin通道类中包含一个功能处理类对象功能处理类中包含一个stdo…

【嵌入式】如何改造STLINK,使其在下载程序时无需外接3.3V电源

文章目录 1. 问题2. 原因及解决方法3. 开始改造4. 参考资料 1. 问题 在使用这种大号的 STLINK 给开发板下载程序时&#xff0c;都需要对开发板进行供电&#xff0c;有些麻烦&#xff0c;但是使用 J-Link 的时候就不需要外接电源&#xff0c;那有没有什么办法可以将 STLINK 改造…

谁家分析数据还要开发啊,不都一键得报表吗?

点击导入数据&#xff0c;再回来BI系统已经把近百张数据分析报表放在眼前了&#xff0c;每月都要计算分析的指标有了&#xff0c;领导要的数据分析有了&#xff0c;自己要的业绩分析也有了&#xff0c;甚至自己没想到的一些分析主题&#xff0c;它也贴心地做好了。有这样一套BI…

13.Oracle通过JDBC连接Java

Oracle通过JDBC连接Java 一、什么是JDBC二、Oracle通过JDBC连接Java1、导入jar包1.1 下载jar包1.2 将jar包导入到java项目中1.3编译jar包 2、连接数据库2.1 编写jdbc工具类2.2 对数据进行基本操作 一、什么是JDBC JDBC&#xff08;Java Database Connectivity&#xff09;是Jav…

mysql查询json字符串内容

参考文章&#xff1a;mysql json 基础查询_mysql json查询-CSDN博客 mysql查询json字符串内容 &#xff08;多层数组嵌套&#xff09; select id,nameJSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(config_json), $.baseInfo)), $.template_list[*].sms_content) s…

在微信上怎么做抽奖活动

微信抽奖活动&#xff1a;让你轻松吸引粉丝&#xff0c;打造火爆互动场景&#xff01; 随着微信的普及&#xff0c;越来越多的人开始利用微信平台进行营销和推广。而微信抽奖活动作为一种有效的营销手段&#xff0c;能够迅速吸引用户的关注和参与&#xff0c;提高品牌曝光度和…

文件包含_具体场景、zip、php相关问题

具体场景—上传可控的文件 具体场景—远程文件包含 具体场景—伪协议

使用键盘管理器更改键盘快捷键,让键盘真正迎合你的使用习惯

如果默认快捷键不适合你&#xff0c;你肯定会想知道如何在Windows 11中更改键盘快捷键。 也许你已经习惯了macOS键盘&#xff0c;或者像我一样在Windows和Mac之间切换工作/游戏——如果是这样的话&#xff0c;重新配置默认的Windows快捷方式&#xff0c;使其与Mac上的快捷方式…

畜牧业可视化畜牧业数字孪生

"畜牧业是我国重要的农业产业之一&#xff0c;对于国民经济的发展和人民群众的生活具有重要的意义。智慧畜牧作为现代畜牧业的发展方向之一&#xff0c;将信息技术和现代管理相结合&#xff0c;提高养殖效率和品质&#xff0c;为行业的可持续发展注入新的动力。智慧畜牧是…

产品经理的能力模型是什么?

一个产品的成功需要团队成员利用自己的技能共同合作完成。作为团队的核心和产品的主导者&#xff0c;产品经理需要具备一定的能力模型&#xff0c;以更好地完成工作。下面从五个方面进行解答。 首先&#xff0c;产品经理需要具备需求分析的能力。需求是用户在特定场景下产生的欲…

go语言学习之旅之Go语言数据类型

学无止境&#xff0c;今天学习Go 语言数据类型 Go&#xff08;或Golang&#xff09;是一种静态类型语言&#xff0c;这意味着变量的数据类型必须显式声明&#xff0c;并且在运行时不能更改。以下是Go中的一些基本数据类型&#xff1a; 这里仅介绍最常用的类型 数值类型: int: …

计算机领域十大天神

✍️作者简介&#xff1a;沫小北/码农小北&#xff08;专注于Android、Web、TCP/IP等技术方向&#xff09; &#x1f433;博客主页&#xff1a;沫小北/码农小北 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN &#x1f514;如果文章对您有一定的帮助请&…