Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13374
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-18 23:11
文章分类

全部博文(12)

文章存档

2017年(11)

2016年(1)

我的朋友

分类: 高性能计算

2017-03-01 21:42:50

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

分析:兔子每月的对数为裴波那契数列(1,1,2,3,5,8,13,21)

可以用递归做

package main

import (
    "fmt"
)

func total(month int) int {
    if month <= 2 {
        return 1
    }
    return total(month-2) + total(month-1)
}

func main() {
    for i := 1; i <= 10; i++ {
        pairs := total(i)
        fmt.Printf("第%d个月的兔子总数为%d对\n", i, pairs)
    }
}

程序打印10个月内的兔子对数变化,运行结果如下:

第1个月的兔子总数为1对

第2个月的兔子总数为1对

第3个月的兔子总数为2对

第4个月的兔子总数为3对

第5个月的兔子总数为5对

第6个月的兔子总数为8对

第7个月的兔子总数为13对

第8个月的兔子总数为21对

第9个月的兔子总数为34对

第10个月的兔子总数为55对

阅读(294) | 评论(0) | 转发(0) |
0

上一篇:函数指针使用方法

下一篇:素数判断

给主人留下些什么吧!~~