• Go语言练习题


    练习 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的控制结构,函数,切片/数组,算是把几个总要的知识点过了一遍,然后把比较有意思的题目放上来做一个记录

  • 相关阅读:
    nodeJS操作mongoDB常用api
    git命令
    Scala笔记(1)——基本知识
    Akka Java 中文文档
    训练:用gfsh执行常见的任务
    https://confluence.jnj.com/display/AAIM/Enterprise+Agile+Data+Services
    gfsh操作
    java知识
    maven使用之烦人的.lastUpdated文件
    idea相关操作
  • 原文地址:https://www.cnblogs.com/ygy1997/p/11845340.html
Copyright © 2020-2023  润新知