递归调用课堂练习(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个桃子了。问题:最初共多少个桃子?

相关文章
|
11月前
|
C语言
C语言函数练习题详解
C语言函数练习题详解
61 1
|
6月前
|
C语言
【汇编语言实战】使用插入排序对给定的数组排序(用栈传递参数)
【汇编语言实战】使用插入排序对给定的数组排序(用栈传递参数)
36 1
|
5月前
|
C语言
C语言学习记录——用递归思想求第n个斐波那契数,函数递归
C语言学习记录——用递归思想求第n个斐波那契数,函数递归
26 0
|
6月前
|
算法 C语言
C语言函数递归调用详解与实战应用
C语言函数递归调用详解与实战应用
56 0
|
C语言
【C语言】用函数递归的方法解决汉诺塔问题
【C语言】用函数递归的方法解决汉诺塔问题
68 0
|
Python
如何写出你的第一个递归函数?
如何写出你的第一个递归函数?
83 0
|
算法
【学习笔记之我要C】函数递归
【学习笔记之我要C】函数递归
57 0
|
算法 程序员 编译器
|
算法 C语言
C语言学习笔记—P9(函数<2>+递归+图解+题例)
C语言学习笔记(函数<2>+递归+图解+题例)
104 0
C语言学习笔记—P9(函数<2>+递归+图解+题例)
看代码求结果练习题(递归例题)
看代码求结果练习题(递归例题)
95 0
看代码求结果练习题(递归例题)