PAT 5 兔子繁衍问题

2023-11-05

兔子繁衍问题(15 分)

一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?

输入格式:

输入在一行中给出一个不超过10000的正整数N

输出格式:

在一行中输出兔子总数达到N最少需要的月数。

输入样例:

30

输出样例:

9

此题可解为:第一个月:1

                    第二个月:1

                    第三个月:2

                      .... ....   :  3、5、8、13、21、34.........

也就是斐波那契数列,S(n)=S(n-1)+S(n-2);

所以有两种解法:f(1):借助数组:

                            

#include<stdio.h>
#define MAXN 1000
int main(){
    int n,m[MAXN],i;
    scanf("%d",&n);
    for(i=1;;i++){
       if(i==1||i==2){
          m[i]=1;
       }else{
           m[i]=m[i-1]+m[i-2];
        }
      if(m[i]>=n){
        printf("%d",i);
        return 0;
     }
   }
   
}

f(2):借用临时数

#include<stdio.h>
int main(){
  int n,temp,x=0,y=1,count=1;
  scanf("%d",&n);
  while(y<n){
       count++;
       temp=y;
       y+=x;
       x=temp;
 }
     printf("%d",count);

}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PAT 5 兔子繁衍问题 的相关文章

随机推荐

  • discuz手机端修改url

    discuz的站需要做伪静态 修改url 本来是直接在最外层用ob函数来替换 pc端的可以 但是这个方法用在手机端的时候 发现失效 后来发现是手机端的php文件使用了函数清空了缓存 ob end clean source class hel
  • python随机性实验

    20210408 0 引言 在另外一篇文章中说明了在使用深度学习库的时候 实验结果的可复现的属性 深度学习实验结果可复现所需设置 随机数等内容设置 文中提到 如果是用GPU加速的话 那么很可能导致实验无法复现 那么就只能使用CPU 好在手里
  • LeetCode:第302场周赛【总结】

    这场比赛用C 写了两个题 在赛后用python补题收获很多 学习了一些python的内置函数 方法学习源于其他优秀的博主 6120 数组能形成多少数对 A题 思路 方法一 我自己写的算法 先对nums排序 之后遍历数组找相邻的位置是否相同
  • 【Docker】Docker安装

    1 添加内核参数 1 通过实训平台进入到操作系统界面 在 后输入vi etc sysctl conf命令 然后按Enter键 进入编辑模式 示例代码如下 root xxx vi etc sysctl conf 2 编辑配置文件 etc sy
  • 行为型模式-命令模式

    package per mjn pattern command import java util HashMap import java util Map 订单类 public class Order 餐桌号码 private int di
  • cv2 python 获取斑马线_opencv 斑马线,条纹检测

    斑马线检测 基于OpenCV 效果不是很好 设置DEBUG变量为True时会输出每一步图像用于逐帧debug和调参 按下任意键或者按住不放下一步 设为False则只画最后结果图 红色方框是判断为斑马线的滑窗 紫色方框是最终输出的斑马线位置
  • 分享 10 个我常逛的国外技术社区,真的受益匪浅

    经常有小伙伴问 小富 有什么国外的技术社区 博客推荐吗 总有人问 索性我就把自己经常访问的 10 个国外技术社区分享出来 想要玩转这些资源的前提 要么自身外语水平不错 要么找个好的翻译工具 不然 不过 也不要一味的崇拜国外的技术 其实你看一
  • 华为设备添加接口描述

    进入视图视图 system view 进入接口 AC6005 int g0 0 1 添加接口描述 AC6005 GigabitEthernet0 0 1 description Con To S1 返回用户视图 AC6005 Gigabit
  • python学习笔记——hashlib模块

    上篇 https blog csdn net qq 42489308 article details 89813895 hashlib Hash 译做 散列 也有直接音译为 哈希 的 把任意长度的输入 通过某种hash算法 变换成固定长度的
  • Springboot项目bootstrap配置未生效、application.yml未读取bootstrap配置文件参数

    场景 Springboot项目 application yml未读取bootstrap配置文件参数 原因 Springboot项目不读取bootstrap yml配置文件 SpringCloud项目才读取bootstrap yml配置文件
  • 软件程序如何运行的-简述

    开门见山 咱不说废话 你有没有想过 你写的程序 是如何在计算机中运行的吗 比如我们搞Java的 肯定写过这段代码 public class HelloWorld public static void main String args Sys
  • 常见的网站漏洞——SQL注入

    1 SQL注入 在输入的字符串中注入SQL指令 而在设计不良的程序中忽略了字符检查 数据库服务器就会认为这些指令是正常的SQL指令而运行 改变原有的SQL语句 2 SQL是什么 SQL是结构化查询语言 用于操控数据库的语言 3 如何判断存在
  • C++ GDB多进程调试

    GDB 主要帮助你完成下面四个方面的功能 启动程序 可以按照自定义的要求随心所欲的运行程序 可让被调试的程序在所指定的调置的断点处停住 断点可以是条件表达式 当程序被停住时 可以检查此时程序中所发生的事 可以改变程序 将一个 BUG 产生的
  • 实验三 LZW编解码实验

    一 LZW算法简介 LZW为词典编码的一种 是通过从输入数据中创建 短语词典 在编码过程中遇到词典中出现的 短语 时 编码器就输出其对应的 序号 用来替代短语 LZW算法的重点是 传输过程中并不传输 短语词典 而是在解码器同步建立词典 这样
  • python列表的添加函数:append()、extend()和insert()与列表添加函数返回none的问题

    列表的添加函数 append 追加 extend 相当于合并俩个列表 insert 添加到某个位置 append 追加 girls 杨幂 迪丽热巴 while True name input 请输入你心目中得到美女名字 if name qu
  • Spring Boot Admin 集成诊断利器 Arthas 实践

    简介 Arthas 是 Alibaba 开源的 Java 诊断工具 具有实时查看系统的运行状况 查看函数调用参数 返回值和异常 在线热更新代码 秒解决类冲突问题 定位类加载路径 生成热点 通过网页诊断线上应用 如今在各大厂都有广泛应用 也延
  • 数据结构与算法(总结)

    总结 一 数据结构 Data Structure 是数据的组织结构 用来组织 存储数据 算法 Algorithm 就是解决问题的方法或者过程 二 数据结构分为逻辑结构和物理结构 逻辑结构分为集合结构 线性结构 树形结构 图形结构 物理结构分
  • Jmeter 课程笔记(三)三种参数化方式

    1 三种参数化方式 1 1读取文本 方法1 CSVRead函数 函数助手使用 CSVRead函数 第一个参数为文本的路径 第二个参数为读取文本的第几列 列数从0开始 文本的每一列之间只支持用逗号隔开 点击生成拷贝字符串 复制到想要替换的参数
  • .Net 开源框架

    1 开源框架选择 数据持久层Nhibernate和IbatisNet这两个都是非常优秀的数据持久层 Nhibernate是优秀的Hibernate的dotNet移植版本 在开源社区具有非常高的人气 IbatisNet是Data Mapper
  • PAT 5 兔子繁衍问题

    兔子繁衍问题 15 分 一对兔子 从出生后第3个月起每个月都生一对兔子 小兔子长到第3个月后每个月又生一对兔子 假如兔子都不死 请问第1个月出生的一对兔子 至少需要繁衍到第几个月时兔子总数才可以达到N对 输入格式 输入在一行中给出一个不超过