zoukankan      html  css  js  c++  java
  • 初级系列5.兔子产子问题

    兔子产子问题

    问题描述
    有一对兔子,从出生后的第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("
    ");                   //每行输出4个
    		fib1 = fib2;                        //为下一次迭代作准备, 求出新的fib2
    		fib2 = fib;                         //求出新的fib1
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    商人的诀窍
    商人小鑫
    懒虫小鑫
    悼念512汶川大地震遇难同胞
    最少拦截系统
    活动选择问题
    删数问题
    常用排序算法的时间和空间复杂度总结
    一些博主
    C中自己的memcpy
  • 原文地址:https://www.cnblogs.com/xzpin/p/11484492.html
Copyright © 2011-2022 走看看