GO的小练习

1. GO实现递归函数阶乘算运算

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

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

2. GO 斐波那契额列数

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

3. GO模拟双色球摇号 随机数产生7个号码 不能重复

/**
 递归方法
 */
//全部去重
func loop2(cp *[7]int) {
    for i := 0; i < 7; i++ {
        for j := 6; j >= 0; j-- {
            if i == j {
                continue
            }
            if j >= 5 {
                if i < 5{
                    continue
                }else {
                    if (*cp)[i] == (*cp)[j] {
                        (*cp)[j] = rand.Intn(12) + 1
                        loop2(cp)
                    }
                }
            } else if j < 5 {
                if i >= 5 {
                    continue
                }else {
                    if (*cp)[i] == (*cp)[j] {
                        (*cp)[j] = rand.Intn(35) + 1
                        loop2(cp)
                    }
                }
            }

        }
    }
    return
}

func main() {
    var cp [7]int

    //设置随机数种子
    rand.Seed(time.Now().UnixNano())

    // 设置前5位随机数
    for i := 0; i < 5; i++ {
        cp[i] = rand.Intn(35) + 1
    }

    // 设置后2位随机数
    for i := 5; i < 7; i++ {
        cp[i] = rand.Intn(12) + 1
    }

    fmt.Println(cp)

    loop2(&cp)

    fmt.Println(cp)

}

4. 通过递归实现 1+2+3...+100

// 方法一
func Test(num int) int {
    if num == 1 {
        return 1
    }
    return num + Test(num -1)
}

// 方法二 从给定的参数开始 + 到100
func Test2(num int) int {
    if num == 100 {
        return 100
    }
    return num + Test2(num + 1)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文有七千字,阅读大约需要占用你10分钟时间。 好吧。。随便写的,我也不知道会花多久看完。因为写的比较烂,而且只是...
    锅与盆阅读 8,186评论 5 36
  • 第八章 递归(recursion) 8.1 导语 因为一些指导者倾向于先教递归作为第一个主要的控制结构,本章会以另...
    geoeee阅读 1,453评论 0 5
  • 13年我来过聊城,坐了个大巴车,司机本着好客山东的精神,晃晃悠悠9个多小时,把每一个乘客放在他们喜欢的地方:”服务...
    苑稂阅读 260评论 2 8
  • 都说孤独是人生常态,而我越来越觉得或许迷茫才是人生的常态,在迷茫中前行是无法回溯时光的无奈之举,也是漫漫人生总归要...
    由零开始r阅读 114评论 0 0
  • 在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用。...
    saviochen阅读 1,931评论 0 9