• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言练习题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

练习 6.4

重写本节中生成斐波那契数列的程序并返回两个命名返回值(详见第 6.2 节),即数列中的位置和对应的值,例如 5 与 4,89 与 10。

func fibonacci(n int) (index  int,value int ) {
	index = n
	if n <= 1 {
		value = 1
	} else {
		_,value0 := fibonacci(n-1)
		_,value1 := fibonacci(n-2)
		value = value0 + value1
	}
	return
}

  

练习 6.6

实现一个输出前 30 个整数的阶乘的程序。

n! 的阶乘定义为:n! = n * (n-1)!, 0! = 1,因此它非常适合使用递归函数来实现。

 

func iterCount(num int ,count *big.Int) *big.Int{
	if num<=1 || count.Int64() == 1{
		return big.NewInt(1)
	}else{
		return count.Mul(count,iterCount(num-1,big.NewInt(count.Int64()-1)))
	}
}

练习 6.8 在 main 函数中写一个用于打印 Hello World 字符串的匿名函数并赋值给变量 fv,然后调用该函数并打印变量 fv 的类型。

  
fv := func(){
fmt.Println("Hello world")
}
fv()
fmt.Println(reflect.TypeOf(fv))

练习 6.10

学习并理解以下程序的工作原理:https://github.com/unknwon/the-way-to-go_ZH_CN/blob/master/eBook/06.9.md

练习 7.4: fobinacci_funcarray.go: 为练习 7.3 写一个新的版本,主函数调用一个使用序列个数作为参数的函数,该函数返回一个大小为序列个数的 Fibonacci 切片。

func fibonacci(fibs []uint64,n int)  uint64  {
	if n<= 1{
		fibs[n]=1
	} else {
			fibs[n] = fibonacci(fibs,n-1) + fibonacci(fibs,n-2)
	}
	return fibs[n]
}

问题 7.3 给定 s := make([]byte, 5),len(s) 和 cap(s) 分别是多少?s = s[2:4],len(s) 和 cap(s) 又分别是多少?

  2 ;3

 

 

 

 

 https://github.com/unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md

  今天主要学习了go的控制结构,函数,切片/数组,算是把几个总要的知识点过了一遍,然后把比较有意思的题目放上来做一个记录


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言学习之10Web开发与Mysql数据库发布时间:2022-07-10
下一篇:
螺旋遍历矩阵(Go)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap