多种方式解决兔子繁殖问题_唐 逸的博客-程序员秘密

技术标签: 斐波那契  数组  循环  兔子繁殖  

兔子繁殖问题:
兔子从出生的第三个月开始繁殖,此后每个月都会繁殖,且每次繁殖都为一对异性兔子。
在封闭环境中,有一对异性刚出生的兔子,不考虑死亡,求一年后有多少对兔子。

//通过观察可以发现
//当前月的可生育兔子=上个月的可生育兔子+上上个月新兔子
//第三个月开始生育之后:每个月的新兔子=可生育兔子
//每个月的兔子总数为:当前可生育+当月新兔子+上个月新兔子
//得出公式F(n)=F(n-1)+F(n-2)

不用公式计算

	//不用数组
	int x=0;//上上个月新兔子
	int b=1;//上个月可生育兔子
    for(int y=1;y<13;y++ ){
    	if(y<3){
    		//一月,二月不生育
    		System.out.println("第"+y+"个月有"+b+"只兔子");
    	}else if(y==3){
    		//三月后一个月没有增加可生育兔子
    		System.out.println("第"+y+"个月有"+(b+b+x)+"只兔子");
    	}else {
    		//三月之后进行当前可生育兔子运算
    		int s=x+b;//当前可生育兔子
    		x=b;//把x变为上个月可生育,参与下次运算时即为上上个月新兔子
    		b=s;//把b变为当前月可生育,参与下次运算时即为上个月可生育兔子
    		System.out.println("第"+y+"个月有"+(s+s+x)+"只兔子");
    	}	
    }

   //用数组方式
    int [] tz=new int [13];//存放计算出的每个月兔子总数
    for(int a=0;a<12;a++){
    	if(a<2){
        	//先确定一月和二月的总数
    		tz[a]=1;
    		System.out.println("第"+(a+1)+"个月有"+tz[a]+"只兔子");
    	}else{
    		//再计算之后每个月的值
        	tz[a]=tz[a-1]+tz[a-2];
        	System.out.println("第"+(a+1)+"个月有"+tz[a]+"只兔子");
    	}

    }

采取F(n)=F(n-1)+F(n-2)的方式计算

    //数组方式
    int [] zs=new int[3];//存放n-2,n-1,n的数值
    zs[0]=1;//n-2的数值
    zs[1]=1;//n-1的数值
    System.out.println("第1个月有"+zs[0]+"只兔子");
    System.out.println("第2个月有"+zs[1]+"只兔子");
    for(int c=3;c<13;c++){
    	zs[2]=zs[0]+zs[1];//n的数值
    	zs[0]=zs[1];
    	zs[1]=zs[2];
    	System.out.println("第"+c+"个月有"+zs[2]+"只兔子");
    }

    //不用数组
    int a1=1;//n-2的数值
    int a2=1;//n-1的数值
    int a3;
    System.out.println("第1个月有1只兔子");
    System.out.println("第2个月有1只兔子");
    for(b=3;b<13;b++){
    	a3=a1+a2;//n的数值
    	a1=a2;
    	a2=a3;
    	System.out.println("第"+b+"个月有"+a3+"只兔子");
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wen459/article/details/89600152

智能推荐

[jQuery知识]jQuery之知识三-过滤器_过滤器focus属于_图解AI的博客-程序员秘密

一.基本过滤器过滤器主要通过特定的过滤规则来筛选所需的 DOM 元素,和 CSS 中的伪类的语法类$('li:first').css('background', '#ccc'); //第一个元素 $('li:last).css('background', '#ccc'); //最后一个元素$('li:not(.red)).css('background', '#ccc'); //非 class 为

各种加密算法_weixin_33730836的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

Hive Table Sampling – Concept and Example_禅与计算机程序设计艺术的博客-程序员秘密

Hive Table Sampling - Concept, Methods and Example, Hive Table Sampling ConceptThe Relational databases like SQL server supports writing queries on a relatively small number of rows from the very l...

Global.asa 参考_softart的博客-程序员秘密

2000年08月27日 13:38:00 Global.asa 文件是一个可选文件,用户可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是 Global.asa 且必须存放在应用程序的根目录中。每个应用程序只能有一个 Global.asa 文件。Global.asa 文件只能包含如下

如何使用Jmeter进行并发测试(多用户同时登录)_jmeter登录并发测试_WuTest001的博客-程序员秘密

Jmeter入门基础篇:多用户同时登录测试,不需要填写验证码一起学习,共同进步~

Java截取最后一个\后面的所有字符_getprinturl_zhangzhen6960的博客-程序员秘密

sysQuery.getPrintUrl().substring(sysQuery.getPrintUrl().lastIndexOf("\\")+1);字符串.substring(字符串.lastIndexOf("\\")+1)

随便推点

微信小程序宠物论坛6_你在干嘛111的博客-程序员秘密

微信小程序宠物论坛6个人主页页面JS部分const db = wx.cloud.database()Page({ data:{ openid:"", nickname:"", heads:"" },onLoad:function(options){ const openid=options.id this.setData({ openid:openid }) console.log(this.data.openid) d

如何在目标机上运行程序_DK__的博客-程序员秘密

一、在客户机上编写程序①根据个人习惯在根目录下,创建一个专门与某个项目相关的文件夹,如hisi3616dv300.mkdir /hisi3516dv300②在这个文件中直接开启root权限,用vi、vim创建编写文件im hello.ccat hello.c 直接查看③在客户机中利用gcc进行编译,得到可执行程序testgcc hello.c -o test 如果编写的程...

ASP.NET MVC5+EF6+EasyUI 后台管理系统 (源码购买说明)_ymnets的博客-程序员秘密

系列目录方便朋友获取一个开发框架,无论是开发还是学习用途将受益匪浅,出售此框架源码价格666,终身免费升级,在线解答问题 您可以通过QQ 729994997 联系我ASP.NET MVC5+EF6+EasyUI 后台管理系统(999)-如何使用这个系统来开发?2017-11-10 更新:优化上个版本代码生成器的生成逻辑!新的代码生成器,可以生成左右结构的连表!2017-10

今日头条2018校招后端方向(第二批)编程题2,串珠问题。java代码。_粉笔头的粉粉笔的博客-程序员秘密

作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在...

Android中Helper帮助类_androidapphelpe_day_smile的博客-程序员秘密

package com.huaiye.ecs.common.utils;import android.app.Activity;import android.app.ActivityManager;import android.content.ComponentName;import android.content.Context;import android.content.Inte

Android:解决ViewPager和(RecyclerView、HorizontalScrollView)内部横向滚动控件的触摸滑动冲突_咳咳涯的博客-程序员秘密

在这之前,先看看这个问题有几种解决办法:理解这篇文章的前提,是需要对触摸事件分发有一点小小的了解,这个方法有点取巧

推荐文章

热门文章

相关标签