首页 > 其他 > 详细

初级系列5.兔子产子问题

时间:2019-09-08 10:51:49      阅读:74      评论:0      收藏:0      [点我收藏+]

兔子产子问题

问题描述
有一对兔子,从出生后的第3个月起每个月都生一对兔子, 小兔子长到第3个月后每个月又生一对兔子, 假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?
问题分析
月数 兔子总数
1 1
2 1
3 2
4 3
5 5
6 8
7 13
Fibonacci数列

算法设计

迭代循环, 即是一个不断用新值取代变量的旧值,然后由变量旧值递推出变量新值
的过程, 这种迭代与如下因素有关:初值, 迭代公式, 迭代次数

迭代公式
fib1 = fib2 =1 (n =1, 2) 初值
fib(n) = fib(n-1) + fib(n-2) (n >= 3) 迭代公式

/* !< use c */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    long fib1 = 1, fib2 = 1, fib;
    int i;
    printf("%12ld%12ld", fib1, fib2);       //输出第一月和第二个月的兔子数
    for (i = 3; i <= 30; i++)
    {
        fib = fib1 + fib2;                  //迭代求出当前月份的兔子数
        printf("%12d", fib);                //输出当前月份兔子数
        if (i % 4 == 0)
            printf("\n");                   //每行输出4个
        fib1 = fib2;                        //为下一次迭代作准备, 求出新的fib2
        fib2 = fib;                         //求出新的fib1
    }
    return 0;
}

初级系列5.兔子产子问题

原文:https://www.cnblogs.com/xuzhaoping/p/11484492.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!