递归调用课堂练习(1)|学习笔记

简介: 快速学习递归调用课堂练习(1)

开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map递归调用课堂练习(1)】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/625/detail/9599


递归调用课堂练习(1)

下面给出两个经典的递归调用练习题

题1:斐波那契数

请使用递归的方式,求出斐波那契数1,1,2,3,5,8,13...给你一个整数n,求出它的值是多少?

题2:求函数值

已知 f(1)=3;f(n)=2*f(n-1)+1;

请使用递归的思想编程,求出f(n)的值?

题1思路:

1.当n==1 || n==2,返回1

2.当n>=2,返回前面两个数的和 f(n-1)+f(n-2)

代码:

func fbn(n int) int {

if (n ==1 || n== 2) {

return 1

} else {

return fbn(n-1)+fbn(n-2)

}

}

func main() {

res fbn(3)

//测试

fmt.Println("res="res)

fmt.Println("res=",fbn(4)) //3

fmt.Println("res=",fbn(5)) //5

fmt.Println("res=",fbn(6)) //8

fmt.Println("res=",fbn(7)) //13

题2思路:

直接使用给出的表达式即可完成

代码:

package main

import(

"fmt"

/*

题2:求函数值配知f(1)=3;f(n)=2*f(n-1)+1;请使用递归的思想编程,求出 f(n)的值?

*/

func f(n int) int {

if n == 1 {

return 3

} else {

return  2 * f(n-1) + 1

}

}

func main(){

//测试一下

fmt.PrintIn("f(1)=", f(1))

fmt.PrintIn("f(1)=", f(5))

}

课后思考练习

猴子吃桃子问题

有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第十天时,想再吃时(还没吃),发现只有1个桃子了。问题:最初共多少个桃子?

相关文章
|
4月前
|
人工智能 监控 安全
智慧工地主要包括哪些内容?
智慧工地运用物联网、AI、大数据等技术,实现施工全过程的数字化与智能化管理。涵盖人员、设备、安全、环境、质量与信息化六大板块,通过智能设备与系统协同,提升效率、保障安全、降低成本,助力绿色施工与科学决策。
842 5
|
5月前
|
SQL JavaScript 前端开发
从混乱到聚焦:任务优先级排序工具在敏捷管理中的核心作用解析
在快节奏的工作中,任务多却难出成绩?问题往往不在“做得少”,而在“乱做”。本文详解任务优先级排序工具的原理与实战,帮助团队统一评估标准、聚焦关键目标,避免被紧急事务干扰真正重要的工作。通过实用工具与代码示例,助你建立科学的任务排序机制,提升效率与产出。
|
2月前
|
机器学习/深度学习 缓存 自然语言处理
30_情感分析变体详解:从极性到细粒度 - 深度解析与教学
情感分析(Sentiment Analysis),又称意见挖掘(Opinion Mining),是自然语言处理(NLP)领域的核心任务之一,旨在自动识别和提取文本中的情感信息。随着社交媒体的普及和用户生成内容的爆炸式增长,情感分析技术在商业决策、舆情监测、产品开发等领域发挥着越来越重要的作用。
|
3月前
|
传感器 人工智能 安全
物联网
万物互联,智启未来。物联网通过连接人、物、环境,重塑生活、城市与产业。从智能家居到智慧城市,从工业互联网到精准农业,数据驱动智能化变革。融合AI、5G等技术,构建高效、安全、可持续的智能世界,开启人类社会新篇章。(238字)
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
ai人工智能课程学什么
本内容全面介绍了AI课程的核心体系,涵盖基础理论、核心算法、应用领域及伦理责任等方面。从数学基础与编程技能到机器学习和深度学习算法,再到自然语言处理与计算机视觉等应用领域,系统阐述了AI技术的全貌。同时探讨了开发框架如TensorFlow和PyTorch的使用,并关注AI伦理与社会责任。通过分步验证与实践经验,帮助学习者规避AI局限性。展望未来,生成式人工智能等新兴技术将持续推动课程发展,助力职业成长与社会进步。
|
数据采集 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
255 22
|
人工智能 运维 数据库
未来的后端开发:人工智能与云计算的融合
【2月更文挑战第10天】 传统的后端开发一直依赖于对数据库、服务器和网络等底层技术的熟练运用,然而随着人工智能和云计算技术的飞速发展,未来的后端开发方向也将发生深刻的变革。本文将探讨人工智能与云计算在后端开发中的应用前景,以及它们将如何重塑后端开发的方式和手段。
|
机器学习/深度学习 数据可视化 PyTorch
时空图神经网络ST-GNN的概念以及Pytorch实现
本文介绍了图神经网络(GNN)在处理各种领域中相互关联的图数据时的作用,如分子结构和社交网络。GNN与序列模型(如RNN)结合形成的时空图神经网络(ST-GNN)能捕捉时间和空间依赖性。文章通过图示和代码示例解释了GNN和ST-GNN的基本原理,展示了如何将GNN应用于股票市场的数据,尽管不推荐将其用于实际的股市预测。提供的PyTorch实现展示了如何将时间序列数据转换为图结构并训练ST-GNN模型。
692 1
|
前端开发 JavaScript 开发者
新一代前端框架:革命性的Web开发利器
传统的前端框架在满足日益复杂的Web开发需求上逐渐显露出局限性,而新一代前端框架的出现,以其革命性的设计和功能,重新定义了Web开发的标准。本文将介绍这些新一代前端框架的特点和优势,并探讨它们在实际项目中的应用。