zoukankan      html  css  js  c++  java
  • 【c语言趣味编程100例】兔子问题

     兔子问题:
            有一对兔子,从出生后第3个月起每个月都生一对兔子,
            小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数?
     解题思路:
            兔子的增长个数 其本质上与斐波那契数列是一致的 就是
            本月的兔子总数等于 前一个月的兔子数和前两个月得兔子总个数
            对fib1 和 fib2 初始化为1 
            每执行一个for 兔子的总个数就是前两个月的和,fib = fib1+fib2
            等得到总兔子数fib后,应该将前一个月的兔子数赋值给前两个月的兔子数fib2 = fib1
            总兔子数fib1 = fib 这样依次执行下去,就可以得到总兔子数

    #include<stdio.h>
    void main(){
    	/*
    	兔子问题:
    	 有一对兔子,从出生后第3个月起每个月都生一对兔子,
    	 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数?
    	 解题思路:
    		兔子的增长个数 其本质上与斐波那契数列是一致的 就是
    		本月的兔子总数等于 前一个月的兔子数和前两个月得兔子总个数
    		对fib1 和 fib2 初始化为1 
    		每执行一个for 兔子的总个数就是前两个月的和,fib = fib1+fib2
    		等得到总兔子数fib后,应该将前一个月的兔子数赋值给前两个月的兔子数fib2 = fib1
    		总兔子数fib1 = fib 这样依次执行下去,就可以得到总兔子数
    	**/
    	int fib1 = 1,fib2 = 1,fib = 0;//fib1代表当前前一个月的兔子数量,fib2 代表前两个月的兔子数量
    	printf("%d	%d	",fib1,fib2);
    	for(int i=3;i<30;i++){
    		
    		fib = fib2+fib1;//总兔子数 等于前两个月的和。fib1+fib2
    		
    		printf("%d	",fib);
    		if(i%4==0)
    			printf("
    ");
    		fib2 =  fib1;
    		fib1 = fib;
    	}
    
    }
    
  • 相关阅读:
    邮箱短信验证码轰炸机
    yalmip+cplex+matlab
    elsevier
    氢能重卡笔记
    Java调试大法,来了~
    极致用户体验:论批量处理接口的性能优化之道
    榨干服务器:一次惨无人道的性能优化
    技术泥潭,你不得不防!
    技术实力的本质是什么?
    服务间是否应该提供批量接口?
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860867.html
Copyright © 2011-2022 走看看