5.12兔子产仔问题

Q:已知一对两个月大的兔子以后每个月可以生一对小兔子,而一对新生的兔子出生两个月才可以生小兔子。假如一年内没有发生死亡,则一年内共能繁殖成多少对?

规律:

  1月:1对新生的兔子(A1,A2)

  2月:1对兔子(A1,A2);因为兔子对(A1,A2)出生两个月后才可以生小兔子,第二个月还没有生殖能力

  3月:(A1,A2)+新生的兔子(B1,B2)

  4月:(A1,A2)+(B1,B2)+新生的兔子(C1,C2)

  ……

  从第三个月起,每个月的兔子数=前两个月兔子数的总和、

  设Fi为第i个月兔子总数,则

  i=1 or i=2, Fi=1

  i>=3 ,Fi=F(i-1)+F(i-2)

代码如下:

#include <iostream>
using namespace std;
int f(int n) {
	if(n==1 || n==2)	return 1;
	else
		return f(n-1)+f(n-2);
} 

int main() {
	int n;
	cin>>n;
	cout<<f(n);
	return 0;
}

  

时间: 2024-08-25 14:37:30

5.12兔子产仔问题的相关文章

兔子产仔问题

[问题描述] 如果一对两个月大的兔子以后每一个月都可以生一对小兔子,而一对新生的兔子出生两个月后才可以生小兔子.也就是说,1月份出生,3月份才可产仔.那么假定一年内没有发生兔子死亡事件,那么1年后共有多少对兔子呢? [问题分析] 先来分析一下兔子产仔问题.逐月分析每月的兔子对数.第1个月:1对兔子:第2个月:1对兔子:第3个月:2对兔子:第4个月:3对兔子: 第5个月:5对兔子:从上述内容可以看出,从第3个月开始,每个月的兔子总对数等于前两个月兔子数的总和. 这个问题可以采用递推算法来解决 [程

蒜头君的兔子

蒜头君的兔子 2017-09-03 题目描述 蒜头君的小伙伴在 第一年 送给他一对 一岁 的兔子,并告诉他:这种兔子 刚生下来时算 0 岁,到了 2 岁时就可以繁殖了,它在 2?10 岁时,每年会生下来一对兔子,这些兔子到了 2 岁也可以繁殖,但这些兔子在 10 岁那年生完仔后 不久就会死亡,蒜头君想知道,第 n 年兔子 产仔之后(第 n 年 10 岁的兔子此时已经死亡),他会有多少对兔子.结果对 1000000007 取模. 输入格式 共一行,一个正整数 n,表示蒜头君想知道第 nn 年的兔子

斐波那契 递推算法

/***Date : 2014.12.10***/ //递推算法:是理性思维模式的代表,根据已有的数据和关系,逐步推导而得出结果. //执行过程:1)根据已知的结果和关系,求解中间结果. ///////////////////// 2)判断是否满足要求,若未满足,则继续根据已知结果和关系求解中间结果:若满足要求,则表示寻找到一个正确答案. //13世纪,意大利数学家斐波那契的<算盘书>中记载:兔子产仔问题. //一对两个月大的兔子,每月都可产仔一对,小兔子两月后的每月也可产仔一对;即1月生,3

Python 趣味百题

趣味整数 1 不重复的3位数 -易 2 水仙花数 -易 3 完全数 -中 4 相亲数 -中 5 黑洞数 -中 6 勾股数 -易 7 自守数 -易 8 3位反序数 -中 趣味素数 1 素数 -中 2 孪生素数 -中 3 金蝉素数 -中 4 可逆素数 -中 5 回文素数 -中 6 平方回文素数 -中 7 梅森尼数 -中 8 哥德巴赫猜想 -中 9 等差素数数列 -中 趣味图形 1 回型矩阵 -中 2 九九乘法表 -易 3 杨辉三角 -易 数学问题 1 天平秤物 -难 2 黑色星期五 -易 3 存钱问

基本算法思想Java实现的详细代码

基本算法思想Java实现的详细代码 算法是一个程序的灵魂,一个好的算法往往可以化繁为简,高效的求解问题.在程序设计中算法是独立于语言的,无论使用哪一种语言都可以使用这些算法,本文笔者将以Java语言为例介绍一些常用的算法思想. 分类 穷举算法思想 递推算法思想 递归算法思想 分治算法思想 概率算法思想  穷举算法思想 穷举算法的基本思想 从所有可能情况中搜索正确答案 1. 对于一种可能情况,计算其结果. 2. 判断结果是否满足,如不能满足者执行第一步来搜索下一个可能的情况:如满足则表示选找到一个

基本算法思想----递推

import java.util.Scanner; public class DiTui { public static int fibonacci(int n){ int t1,t2; if(n==1||n==2) { return 1; } else { t1 = fibonacci(n-1); t2 = fibonacci(n-2); return t1 + t2; } } public static void main(String[] args) { // TODO Auto-gene

【华为OJ】【029-统计每个月兔子的总数】

[华为OJ][算法总篇章] [华为OJ][029-统计每个月兔子的总数] [工程下载] 题目描述 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? /** * 统计出兔子总数. * * @param monthCount 第几个月 * @return 兔子总数 */ public static int getTotalCount(int monthCount) { return 0; } 输入描述 输入int型表

童年野趣:动物篇 (文字版)

动物:猪 游戏:骑猪.某年,邻居大哥哥看到街上有一头猪正在睡觉,于是撺掇着让我去骑一下试试.我立即去叔叔家拿了一个小板凳,站在上边,跳上猪背.大哥哥可能没想到我真的敢上,他赶紧过来帮忙.猪惊起,狂奔.我也吓的说不出话来,紧紧抓住猪的耳朵.大哥哥一手扶着我,一手拽着猪,跟着奔跑.杀猪一般惨叫后邻居是个屠夫.所以清早经常被杀猪的嚎叫吵醒,比闹钟都准.“杀猪一般惨叫”这个形容语我是感受非常深刻的.吹猪皮:猪被屠宰之后,先要放血.然后在猪蹄那儿割上一刀,找个“大气”的人朝里面吹气,吹完之后扎起来.然后用

2019 10.3模拟

1. 蒜头君的兔子 (rabbit.cpp/.in/.out 2s,256m)蒜头君的小伙伴在 第一年 送给他一对 一岁 的兔子,并告诉他:这种兔子 刚生下来时算 0 岁,到了 2 岁时就可以繁殖了,它在 2-10 岁时,每年会生下来一对兔子,这些兔子到了 2 岁也可以繁殖,但这些兔子在 10 岁那年 生完仔后 不久就会死亡,蒜头君想知道,第 n 年兔子 产仔之后(第 n 年 10 岁的兔子此时已经死亡),他会有多少对兔子.结果对1000000007 取模.输入格式共一行,一个正整数 n,表示蒜