递推递归练习 -A 母牛问题 / / E .兔子繁殖问题

PAT刷题踩坑记:兔子繁衍问题从递归超时到迭代优化的完整心路历程 第一次看到这道兔子繁衍问题时,我的第一反应是"这不就是斐波那契数列吗?"作为一个刚学完递归的编程新手,我自信满满地写下了递归解法。提交后那个刺眼的"运行超时"让我意识到,算法题远没有想象中那么简单。本文将完整还原这段从失败到成功的解题历程,分享给同样在算法路上摸索的你。 阅读详情

DESCROPTION:

第一年,有一头牛成牛,每一年生一头小母牛,但是小母牛要在第四年才能长成 成牛,问第n年 一共有几头牛;

第一年有一头,第二年有两头,第三年 有四头,第四年 有四头,第五年 有6头 。
数组a[i] 代表 第 i 年的 总的牛数
 总结 第 i 年 的 牛数  是 i-1 的牛的 个数 加上 i-3 年前 牛的总个数      (因为 i-3)年的 所有的牛 在 第 i年都是 成 牛了。
code:
#if   1
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
 cin>>n;
  int a[55];
 while(n!=0)
 {
 
  
 
  int i;
  a[1]=1;
  a[2]=2;
  a[3]=3;
  for(i=4;i<=n;i++)
  {
  
   a[i]=a[i-1]+a[i-3];
     }
  cout<<a[n]<<endl;
  
  cin>>n;
 }
 
 
}
#endif
尤其注意的是 罗列前三年的牛的个数,以及循环 开始的 年数 是从 i+3 开始的。

养兔子问题:

description:
第一年有一对兔子,第二年生下一对兔子,生下来的小兔子,要等一年 才能生育,且每一对兔子只能生一对,问 第 n年 有多少对兔子?(数据类型可以用64位整数:long long)

这个问题和 牛的 问题类似 ,第 i年的 兔子 的数量 等于 i-1年 兔子的数量 加上 i-2年兔子的 数量  (因为 在 第i-2 年所有的兔子在第 i年都可以生育)
#if 0                   
#include<iostream>
using namespace std;
int main()
{
long long int a[100];
 
 int n;
 while(cin>>n&&n!=0)
{
    
 a[1]=1;
 a[2]=2;
 
 for(int i=3;i<=n;i++)
 a[i]=a[i-1]+a[i-2];
 
 cout<<a[n]<<endl;
}
 return 0;
}
#endif













(递推1)兔子繁殖问题 有一对小兔子,小兔子过Z个月长大,一对大兔子X个月生Y对小兔子,求n个月后的兔子总对数。 当xyz都是1的时候,f(n)=f(n-1)+f(n-2) 问题一: 有一对小兔子,小兔子过5个月长大,一对大兔子3个月生4对小兔子,求n个月后的兔子总对数。 f(n)表示n个月后的兔子总数 f(n)=n那个月原有的兔子+n那个月新生的兔子 n那个月原有的兔子是:f(n-1) n那个月新生的兔... 阅读详情

相关推荐

算法设计与优化第六章递归法经典例题(如最大值,母牛繁殖,x的n次幂等共5个)

算法设计与优化中的递归法德5道经典例题(如最大值,母牛繁殖,x的n次幂等),用c编写,很适合初学者借鉴。

兔子繁殖问题(递归解决)

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对 两个月后,生下一对小兔对数共有两对 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对 ------ 分析:将兔子生长分为三个阶段,”幼兔子”,”中兔子”,

贾永翀的博客 1万+

西门子博图编程:使用S7-1500冗余PLC 建立ModbusTCP通信

文章目录1.1 网络结构1.2 系统 IP 介绍1.3 Modbus TCP 通讯编程1.3.1 CPU 做服务器 1.1 网络结构 以 CPU151 7H 为例, 网络结构示意如下图所示: CPU 1517H 冗余 PLC 有 PROFINET X1 接口和 X2 接口, Modbus TCP 通讯可以将设备(例如 Standard PLC)通过交换机接入到任何网络接口中。如果接入 X1 接口,需要通过交换机接入到 MRP 环网中,但是并不需要支持 H-sync 转发。如果接入 X2 接口,只需要使

2万+

兔子繁殖问题,梯推算法(C++)

问题描述:一对兔子从出生以后第三个月开始,每月生一堆小兔子。小兔子到第三个月又开始生下一代小兔子。假若兔子之生不死,一月份抱来一对刚出生的小兔子,问一年中每个月各有多少对兔子?

m0_65420451的博客 4464

igh ethercat 实时性测试

组备注std(us)max(us)a无锁核,无rt补丁8.38108b锁核+FIFO调度+内存锁定,无rt补丁0.9216c锁核+FIFO调度+内存锁定,+rt补丁0.9922可以看到 a组 使用ethercat不做其他优化,周期抖动非常大,且max能达到 100 多 us;通过 锁核+FIFO调度+内存锁定 进行优化,可以看到 抖动明显降低,且max 为 20 us 左右;

qq_43353632的博客 2311

二元交叉熵:分类模型概率校准的数学根基

二元交叉熵(BCE)是二分类任务中实现概率校准的核心损失函数,其本质源于最大似然估计与KL散度,确保模型输出具备真实可解释的概率意义。相比均方误差(MSE)或Hinge Loss,BCE强制优化预测分布与真实伯努利分布之间的信息差异,使p=0.8真正对应约80%的正例发生率,支撑风控、医疗、推荐等高信度场景的阈值决策。它不只影响训练收敛,更决定部署后概率的业务可信度——这正是Focal Loss等变体无法替代其基础地位的根本原因。理解BCE,就是理解分类模型如何从‘打分器’进化为‘概率契约签署者’。

congli3478的博客 1336

兔子生崽——C与C++实现

题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对?(输出前40个月即可) 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…,即下个月是上两个月之和(从第三个月开始)。 C实现: #define _CRT_SECURE_NO_WARNINGS #include<stdi...

ling08140814的博客 3938

把STM32MP135当单片机玩:实战SD卡脱机运行LED程序(基于MP135DK开发板)

本文详细介绍了如何在STM32MP135开发板上实现SD卡脱机运行LED程序,通过裸机开发方式(Bare Metal)利用HAL库完成GPIO控制,并解析了SD卡启动流程。内容涵盖工程创建、代码编写、SD卡烧录及常见问题排查,为开发者提供了一种高性能单片机开发方案。

weixin_33734785的博客 242

递归求母牛个数(递归法和数组法)

采用递归和数组求解母牛个数。

m0_64351669的博客 1320

【SLAM】SVO2.0编译运行和论文代码解读

SVO2是我遇到的最难编译的代码了,可能公开版本不能放太鲁棒的代码吧,搞了快一个星期,终于跑起来了。

iwanderu的博客 5974

基于simulink的BMS系统中电池单体故障隔离与恢复建模

本文介绍了使用Simulink构建BMS电池单体故障诊断与容错控制模型的方法。主要内容包括:1)搭建12串锂电池组模型;2)实现单体故障注入(过压、断线等);3)设计故障诊断与隔离模块(采用Stateflow状态机);4)开发恢复判断逻辑(需满足电压、温度等条件);5)系统监控与仿真设置。文章还提供了工程实践建议,如防环流设计、通信冗余等,并指出进阶方向(多故障处理、AI预警等)。该模型适用于新能源汽车、储能系统的BMS设计,可提高系统可靠性和安全性。

xiaoheshang_123的博客 140

题目 1004: [递归]母牛的故事 简单递归算法

题目 1004: [递归]母牛的故事 时间限制: 1Sec 内存限制: 128MB 提交: 61799 解决: 19025 题目描述 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? 输入 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。 输出 对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。 样例输入 2

sdnu-菜鸟 648

S7-1200 PLC PID功能 | 调节PID参数

S7-1200 PLC PID功能 | 调节PID参数

Robot_PLC_HMI_Automation 1万+

递推递归练习--E(养兔子)

题目简述:有一对兔子每天生一对兔子,成熟期是1天,新兔子隔一天才能生小兔子,求第n天有多少对小兔子。 解题思路: 该题类似于第一题母牛的问题。找规律的递推问题。 第一天---一对兔子; 第二天---两对兔子; 第三天---三对兔子(第一天+第二天); 第四天---五对兔子(第二天+第三天); …………以此类推 源代码: #include using namespace st

sdau164185的博客 399

VTK GPU 加速渲染技术

/ 创建颜色工具// 创建立方体数据// 创建OpenGL映射器(注意使用vtkOpenGLPolyDataMapper而不是常规的vtkPolyDataMapper)// 启用VBO(顶点缓冲对象)// 声明几何体是静态的以获得最佳性能// 创建actor// 创建渲染器、渲染窗口和交互器renderWindow->SetWindowName("VTK自定义着色器示例");// 添加actor到渲染器。

深之JohnChen的专栏 1242

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

递推递归练习 E 养兔子

Description 一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。 Input 测试数据包括多组,每组一行,为整数n(1≤n≤90)。 输入以0结束。 Output

qq_37747988的博客 376

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

递归递推练习―E―养兔子

Description 一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。 Input 测试数据包括多组,每组一行,为整数n(1≤n≤90)。 输入以0结束。 Output 对应输出第n天有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制

的博客 305

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

递归——兔子繁殖问题

兔子繁殖问题:题目描述 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少? 输入描述: 输入int型表示month 输出描述: 输出兔子总数int型 基本思路: 这是一个递归问题,从第一个月开始每个月兔子的数目为:1,1,2,3,5,8,13…,可以看出从第三个月开始,每个月兔子的数目是前两个月兔子的数目的...

gml1997的博客 9033

兔子繁殖问题

兔子繁殖问题的几种解决方法

s2501805787的博客 252

#38. 兔子繁殖问题

如果有一对小兔,每一个月都生下一对小兔,而所生下的每一对小兔在出生后的第三个月也都生下一对小兔。那么,由一对兔子开始,n 个月后有多少对小兔子呢?对于每个询问,输出一行整数,代表 n 月的时候,小兔子的数量。输入一个数字 n(1≤n≤100),代表题目中询问的月份。递归的效率问题(递归优化,递归+记忆化,反向求解)100% 的数据保证 n≤100。40% 的数据保证 n≤20。正向递推求解——递归。反向递推求解——循环。

weixin_65158477的博客 412

兔子繁殖问题(斐波那契数列)三种方法实现(递归/数组/三个变量)

最开始有一对小兔子,一个月后成熟。第二个月,母兔妊娠,第三个月,生一对小兔。小兔也花一个月成熟,然后,如同它们的父母,从第三个月开始每月生一对小兔。第n个月共有多少对兔子。 第 n 月兔子的对数 = 第 (n - 1) 月兔子的对数 + 第 n 月新出生的小兔子对数; 第 n 月新出生的小兔子的对数= 第 (n - 1) 月大兔子的对数; 第 (n - 1) 月大兔子的对数= 第 (n - 2) 月大兔子的对数 + 第 (n - 2) 月小兔 子对数 (小兔子经过一个月长成大兔子); 即,第 n 月新出生的

qq_58642780的博客 9746

习题4-11 兔子繁衍问题

一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 思路:找规律,在下方表格中,你会发现除了1月和2月以外,兔子的对数都是前两个月之和,而这也就是我们常见的斐波那契数列。既然如此,我们可以使用递归来找到第n月有多少只兔子,当然题目要我们求的是月数,而不是

酒色财气君莫沾 1043

JAVA算法:递归求解母牛问题(JAVA代码)

JAVA算法:递归求解母牛问题(JAVA代码) package com.bean.algorithmbasic; public class CowProblem { /* * 由于所有的母牛都不会死,所以第N-1年的牛会毫无损失的活到第N年。 * 同时,所有成熟的牛都会生一头新的母牛,那么成熟牛的数量如何估计? * 就是第N-3年的所有牛,到第N年肯定都是成熟的牛,期...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 1353

经典递归——兔子繁殖问题

题目: 已知有一对兔子,每个月可以生一对兔子,而小兔子一个月后又可以生一对小兔子(比如:2月份出生的小兔子4月份可以生育)。也就是说,兔子的对数为:第一个月1对,第二个月2对,第三个月3对,第四个月5对…假设兔子的生育期为两年,且不死。那么问题来了,你能说出每个月的兔子数么? 输入格式: 输入一个数n,表示第n个月,1<=n<=24。 输出格式: 输出这个月兔子的数目。 输入样例: 4...

qq_43771635的博客 5295

兔子繁衍问题——C语言(函数递归算法)

兔子繁殖问题

寄蜉蝣于天地,渺沧海之一粟 5012

C语言递归解兔子繁衍问题

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

weixin_43819521的博客 1万+
上一篇: ACM程序设计 -Z
下一篇: 递归递推练习 -b 王小二切饼/HDU折线分割平面
Joined
博客等级 码龄10年 19粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值