zoukankan      html  css  js  c++  java
  • C语言经典算法100例-011-兔子问题

    问题如下:

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

    1.分析:问题的关键是建立数学模型,而每三个月生一对兔子可以转化为斐波那契问题。究竟是如何转化为斐波那契问题的呢?请看下图:

       而通项公式为:

    F(1)=F(2)=1;
    F(n)=F(n-1)+F(n-2) (n≥3)。关于通项公式的证明,有兴趣可以自己证一下。
    于是程序也就很好写了。

    2.源代码:

    #include <stdio.h>
    #include <stdlib.h>
    //兔子问题
    int main()
    {
        long f1,f2;
        int i;
        f1=f2=1;
        for(i=1;i<20;i++)
        {
            printf("%12d%12d",f1,f2);
            if(i%2==0) printf("
    ");//每行输出四个数
            f1=f1+f2;   //给下一次的F1赋值
            f2=f1+f2;   //给下一次的F2赋值
        }
        return 0;
    }

    该程序十分简洁,只使用了两个长整型就完成了显示。

        

  • 相关阅读:
    常用FPGA功能块记录
    鸿蒙相关
    微波相关
    Python库大全
    C#环境实现代码的自动生成编译
    STM32相关
    硬件相关
    C# 获取枚举中文注释
    C# 获取自定义特性值
    Asp.Net Core 中 Host 与 WebHost的区别
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959513.html
Copyright © 2011-2022 走看看