代码编织梦想

// 我的思路是三种状态兔子总和<n,第三种状态兔子可以生,在循环里递推。题解思路是斐波那契

// 卡壳,原因是题目的误导性太强了

从出生后第3个月起每个月都生一对兔子,题目的真正意思是兔子长到第三个月的瞬间立刻生一对兔子,也就是二月成熟,花一个月生一对兔子

// 从原文完全看不出这个真正的意思,不知道是不是我语文不好

// 有歧义的题尝试列下情况

// 第一个月 兔子1,出生状态

// 第二个月 兔子1

// 第三个月 兔子1+1

// 第四个月 一开始的兔子生1

// 第五个月 一开始的兔子生1,一开始的兔子的子一代生1

// 题目清楚地说明了兔子刚出生是属于第一个月,理解了这第一个月指的是什么就好办了

// 首先第1个月肯定是一个时间跨度,不可能是兔子出生的时间点

// 那它指的就是兔子被称为“出生第一个月”到“出生第二个月”中间的间隔1->2

// 第二个月就是2->3

// 那第三个月就是3->4,此时就应该生兔子了,也就是一直兔子出生到月份+2就生兔子了,

// 此时可以发现,新出生的兔子数量就是”出生第二个月“到“出生第三个月后”的兔子数量总和,也就是这两种兔子没有区别,可以直接合并,

// 这样就可以在循环中递推每一种兔子的数量了

// “出生第一个月”的兔子数量 = ”出生第二个月“到“出生第三个月后”的兔子数量总和,

// ”出生第二个月“到“出生第三个月后”的兔子数量总和 要多加原来”出生第一个月“的兔子数量

// 用c1表示”出生第一个月“的兔子数量,c2表示”出生第二个月“到“出生第三个月后”的兔子数量总和,代码如下

// 从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死
// 请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
// 内容重复,用递归
// 兔子数量共享,用全局
// 兔子年龄不共享,用局部,
// 兔子年龄为3时开始调用递归,开始加兔子数量,数量达到了n就返回
// 递归没写好,换模拟

// int cnt = 2;
int t;
int n;
// void dfs(int year){
//     while(cnt < n){
        
    
//         year++;
//         t++;
//         cout << t << endl;
    
//         if(year >= 3){
//             dfs(0);
//             cnt+=2;
//         }
//     }
//     return;
// ,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?,t = 1;
// 我的思路是三种状态兔子总和<n,第三种状态兔子可以生,在循环里递推。题解思路是斐波那契
// 卡壳,从出生后第3个月起每个月都生一对兔子,题目的真正意思是兔子长到第三个月的瞬间立刻生一对兔子,也就是二月成熟,花一个月生一对兔子
// 从原文完全看不出这个真正的意思,不知道是我语文不好还是出题人语文不好,
// 有歧义的题尝试列下情况
// 第一个月 兔子1,出生状态
// 第二个月 兔子1 
// 第三个月 兔子1+1
// 第四个月 一开始的兔子生1
// 第五个月 一开始的兔子生1,一开始的兔子的子一代生1
// 题目清楚地说明了兔子刚出生是属于第一个月,理解了这第一个月指的是什么就好办了
// 首先第1个月肯定是一个时间跨度,不可能是兔子出生的时间点
// 那它指的就是兔子被称为“出生第一个月”到“出生第二个月”中间的间隔1->2
// 第二个月就是2->3
// 那第三个月就是3->4,此时就应该生兔子了,也就是一直兔子出生到月份+2就生兔子了,
// 此时可以发现,新出生的兔子数量就是”出生第二个月“到“出生第三个月后”的兔子数量总和,也就是这两种兔子没有区别,可以直接合并,
// 这样就可以在循环中递推每一种兔子的数量了
// “出生第一个月”的兔子数量 = ”出生第二个月“到“出生第三个月后”的兔子数量总和,
// ”出生第二个月“到“出生第三个月后”的兔子数量总和 要多加原来”出生第一个月“的兔子数量
// 用c1表示”出生第一个月“的兔子数量,c2表示”出生第二个月“到“出生第三个月后”的兔子数量总和,代码如下
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int t,n;
int main(){
   cin >> n;
    int c1 = 1,c2 = 0;
    t = 1;
    while(c1+ c2 < n){
       int  a =c1,b = c2;
        c1 = b;
        c2 += a;
        t++;   
        
    }
    cout << t<< endl;
    return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_72496300/article/details/129628339

7-10 兔子繁衍问题(15 分)_qq_40938335的博客-爱代码爱编程

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

7-27 兔子繁衍问题 (15 分)-爱代码爱编程

一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 输入样例: 30 输出样例: 9 思

习题4-11 兔子繁衍问题 (15 分)_xiangwangdeshenghuo的博客-爱代码爱编程

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

7-27 兔子繁衍问题详解笔记-爱代码爱编程

7-27 兔子繁衍问题 (15分) 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 输入样例: 30 输

7-27 兔子繁衍问题 (15分)-爱代码爱编程

7-27 兔子繁衍问题 (15分) 题目描述如下: 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月

PTA 7-27 兔子繁衍问题 (15 分)-爱代码爱编程

主要思路其实跟中学找规律差不多,发现兔子每个越繁衍的速度是呈现斐波那契数列的从第三个月开始,1,1,2,3,5,8,,,,, 所以算法思路就是总数 n=n+v(繁衍速度),最后针对前三个月情况,单独写个代码。依旧,非科班出生,路子格式比较野(慢慢改正),望海涵。 #include <stdio.h> int main(int argc,

7-27 兔子繁衍问题-爱代码爱编程

/* 7-27 兔子繁衍问题 (15 分) 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数 */ /

7-12 兔子繁衍问题 (15 分)-爱代码爱编程

一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 输入样例: 30 结尾无空行 输出样例:

7-27 兔子繁衍问题 (15 分)-爱代码爱编程

一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 输入样例: 30 输出样例: 9 【题目分析】:

7-27 兔子繁衍问题_nik0_niko的博客-爱代码爱编程

斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F (0)=0,F (1)=

7-9 兔子繁衍问题分数 15_jiangkz1的博客-爱代码爱编程

作者 徐镜春 单位 浙江大学 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 输入样例:

推荐系统1-推荐系统简介-爱代码爱编程

目录标题 推荐系统简介1、推荐系统目的2、推荐系统的应用3、推荐系统的基本思想4、推荐系统的数据分析5、推荐系统的分类6、推荐算法简介6.1 基于人口统计学的推荐算法(基于用户数据)6.2 基于内容的推荐算法(基于内

动态顺序表(c语言实现)-爱代码爱编程

坚持学习 目录 1.顺序表的概念  2.顺序表的定义 3.顺序表的接口函数 3.1顺序表初始化 3.2检查顺序表是否需要扩容  3.3尾插数据  3.4尾删数据 3.5头插数据 3.6头删数据 3.7打印顺序表的数据 3.8销毁顺序表 3.9在指定位置插入数据 3.10删除指定位置的数据 3.11查找指定数据 4.

数据结构——【顺序表】基本操作代码-爱代码爱编程

先来讲解一下如何实现线性表: 1 .  基本构成框架是结构体,结构体内部由两个成员:一个是数组,一个是标记last(而这都是整型)。数组是用来记录数据,标记是用来表示最后一个元素的位置。 2 .  put函数:对标记进行初始化,也就是让last=-1,然后利用循环输入数据。 3 .  check函数:利用循环遍历并打印线性表。

csp202209-2 何以包邮?-爱代码爱编程

题目描述 新学期伊始,适逢顿顿书城有购书满 x 元包邮的活动,小 P 同学欣然前往准备买些参考书。 一番浏览后,小 P 初步筛选出 n 本书加入购物车中,其中第 i 本(1≤i≤n)的价格为 ai 元。 考虑到预算有限,在最终付款前小 P 决定再从购物车中删去几本书(也可以不删),使得剩余图书的价格总和 m 在满足包邮条件(m≥x)的前提下最小。

[牛客算法总结]:重建二叉树-爱代码爱编程

   标签: 二叉树、DFS、先序遍历、中序遍历、递归   题目: 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中

寒假所学算法复习3月12总结-爱代码爱编程

3月12复习了深度优先搜索(dfs)和广度优先搜索(bfs) 刷了洛谷上的一道题:[POI2007]GRZ-Ridges and Valleys - 洛谷 原本想用dfs写,但写到一半,发现思路不对,于是又用bfs去写,思路如下: 地图上有三种区域,山峰,山谷,山坡,当一个相同数的区域的周围全是比这个数要小的数这个区域就是山峰,否则就是山谷,但

用javascript分类刷leetcode6.深度优先&广度优先(图文视频讲解)_javascript leetcode 6题-爱代码爱编程

深度优先&广度优先 动画过大,点击查看 bfs:适用于层序遍历或者寻找最短路径的问。 //bfs伪代码模版 function bfs(graph, start, end) { queue =

数字三角形-爱代码爱编程

目录 题目描述  解题思路 DP初始化 DP最终条件 DP初始条件 题目限制条件 总代码 题目描述  解题思路 首先映入我们眼帘的就是一个三角形,加求路径和最大,类似于找最短路径的题,很明显是一个二维数组的动态规划问题,对于动态规划问题我们只需要找好最终条件,初始条件(也就是特殊条件),当然还要题目限制的条件既可求解。

一本通 2.9.2 动态规划中背包问题_一本通 背包问题-爱代码爱编程

1260:【例9.4】拦截导弹(Noip1999) 【题目描述】 一个旅行者有一个最多能装 M 公斤的背包,现在有 n�件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn,求旅行者能获得最大总价值。 【题目分析】  【代码实现】 #include <bits/stdc++.h> usi