兔子

Java50道经典习题-程序1 不死神兔

点点圈 提交于 2020-04-04 06:07:57
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 分析:假如:1月1日有1对兔子,根据题目“从出生后第3个月起每个月都生一对兔子”即3月1日这对兔子产子一对由此可推出一对兔子从出生到产子的时间为每两个月一次,从第二对兔子开始,后续兔子的产子时间相同由此可得出以下的兔子数规律 兔子的规律为1,1,2,3,5,8,13,21.... 从第3月开始,每月兔子的总数等于上两月兔子总数之和 总数量 1 1 2 3 5 8 13 21 月份 1月 2月 3月 4月 5月 6月 7月 8月 A A1 A2 A3 A4 A5 A6 兔 A1-1 A1-2 A1-3 A1-4 子 A2-1 A2-2 A2-3 族 A3-1 A3-2 谱 A1-1-1 A4-1 A1-1-2 A1-2-1 A1-2-1 A2-1-1 1 public class Prog1 { 2 public static void main(String[] args) { 3 int Month=8; 4 System.out.println("第"+Month+"月,兔子的总对数有:"+Sum(Month)+"对"); 5 } 6 private static int Sum(int Month) { 7 if(Month=

实例011:养兔子

◇◆丶佛笑我妖孽 提交于 2020-03-27 21:39:38
100个不同类型的python语言趣味编程题 实例011:养兔子 题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 此题与趣味算法第五题是同一题,因此在这里列出另一种解法,具体分析请看趣味算法第五题。 程序分析:考虑到三个月成熟,可以构建四个数据,其中:一月兔每个月长大成为二月兔,二月兔变三月兔,三月兔变成年兔,成年兔(包括新成熟的三月兔)生等量的一月兔。 month=int(input('繁殖几个月?: ')) month_1=1 month_2=0 month_3=0 month_elder=0 for i in range(month): month_1,month_2,month_3,month_elder = month_elder+month_3,month_1,month_2,month_elder+month_3 print('第%d个月共'%(i+1),month_1+month_2+month_3+month_elder,'对兔子') print('其中1月兔:',month_1) print('其中2月兔:',month_2) print('其中3月兔:',month_3) print('其中成年兔:',month_elder) #解本问题有多种方法,此方法并不是标准答案

递归算法题(兔子)

不打扰是莪最后的温柔 提交于 2020-03-24 09:05:22
问题: 古典问题:3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子, * 假如兔子都不死,问每个月的兔子总数为多少? 代码: import java.util.Scanner; public class Else {   public static void main(String[] args) {     int n=new Scanner(System.in).nextInt();     int totle = 2;     System.out.println(digui(n)*2);   }   private static int digui(int n) {     int totle = 1;     if (n==1||n==2) {       totle = 1;     }     if (n>2) {       totle = digui(n-1)+digui(n-2);     }     return totle;   } } 来源: https://www.cnblogs.com/-rainbow-/p/7410830.html

java经典50题

南笙酒味 提交于 2020-03-23 14:17:36
JAVA基础编程练习50题 本文对50道经典的java程序题进行详细解说,对于初学者可以跳过一些逻辑性太强的题目,比如第一题用到了方法的递归,初学者可能不理解,最好先看那些有if、for、while可以简单解决的程序题!但是,对于比较深入学习过的同学,还是希望可以一口气就看完,这是比较全面思维锻炼! 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 做这种题目,最好的做法就是找出规律,跟高中的数列一样 本题有:a[n]=a[n-1]+a[n-1],而第一第二项都知道了,后面的值也可以求得 public class Rabbit { public static void main(String[] args) { System.out.println("请输入当前月是:"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println("第"+n+"个月,共有兔子数是"+f(n)); sc.close(); } private static int f(int n) { if(n==1 || n==2)

习题4-11 兔子繁衍问题 (15分)

故事扮演 提交于 2020-03-12 02:26:07
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 输入样例: 30 输出样例: 9 解答: #include<stdio.h> int fun(int n){ if(n==1||n==2){ return 1; }else{ return fun(n-1)+fun(n-2); } } int main(){ int n,m=1; scanf("%d",&n); while(fun(m)<n){ m++; } printf("%d",m); return 0; } 来源: CSDN 作者: youandworld 链接: https://blog.csdn.net/qq_30377869/article/details/104766329

不死神兔问题(斐波那契数列)

回眸只為那壹抹淺笑 提交于 2020-03-09 09:46:04
题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少? 分析 由此可见兔子对象的数据是:1 , 1 , 2 , 3 , 5 , 8 … 前两个月兔子都是一对,从第三个月开始每个月的兔子是前两个月兔子的和 程序代码 非递归实现 package com.company.demo; public class MyDemo { public static void main(String[] args) { int[] arr = new int[20]; //前两个月都是1对 arr[0] = 1; arr[1] = 1; //从第三个月开始 for (int i = 2; i < arr.length; i++) { //从第三个数开始,每个数等于他前两个数之和 arr[i] = arr[i - 1] + arr[i - 2]; } System.out.println(arr[19]); } } 递归实现 package com.company.demo; public class MyDemo { public static void main(String[] args) { int num = rabbitSum(20); System.out.println(num); } private

C语言【程序8】 题目:古典问题:生兔子

狂风中的少年 提交于 2020-03-06 03:25:56
//【程序8】 //题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, //小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //分析: 规律:1,1,2,3,5,8,13 # include <stdio.h> int main ( ) { int f1 , f2 , i , f ; f1 = f2 = 1 ; printf ( "%d %d " , f1 , f2 ) ; for ( i = 3 ; i <= 12 ; i ++ ) { f = f1 + f2 ; f1 = f2 ; f2 = f ; printf ( "%d " , f ) ; } return 0 ; } 来源: CSDN 作者: Dream__Moon 链接: https://blog.csdn.net/xiaoyue_/article/details/104671623

用C语言解“龟兔赛跑”题

老子叫甜甜 提交于 2020-03-04 18:50:03
7-22 龟兔赛跑 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出@ @,兔子赢输出 _ ,平局则输出- -;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 思路 因为兔子是先跑十分钟在看乌龟的情况再决定是否休息,所以需要于乌龟比较。通过分析可知,前十分钟:兔子跑90m,乌龟跑30m,然后兔子休息三十分钟;前四十分钟,兔子90m(休息三十分钟),乌龟跑120m;前五十分钟,兔子跑180m,乌龟跑150m,然后兔子休息三十分钟;前八十分钟,兔子跑180m(休息六十分钟),乌龟跑240m;前九十分钟,兔子跑270m,乌龟跑270m;…可看出九十分钟一个周期,兔子只会在0-10,40-50,80-90这三个时间段跑,而乌龟却一直在跑,则可由此判断谁是胜利者 代码 # include <stdio.h> int main ( ) { int T ;

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

雨燕双飞 提交于 2020-03-04 11:14:11
# include <stdio.h> int fibonacci ( int n ) { if ( n == 1 || n == 2 ) return 1 ; return fibonacci ( n - 1 ) + fibonacci ( n - 2 ) ; } void main ( ) { int month = 1 , n , sum = 0 ; scanf ( "%d" , & n ) ; while ( ( sum = fibonacci ( month ) ) < n ) { month ++ ; } printf ( "至少到第%d个月时,才有%d对兔子,已有%d对兔子\n" , month , n , sum ) ; } 来源: CSDN 作者: 轻松的小希 链接: https://blog.csdn.net/qq_38490457/article/details/104647118

7-27 兔子繁衍问题

大憨熊 提交于 2020-02-28 14:23:49
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在一行中给出一个不超过10000的正整数N。 输出格式: 在一行中输出兔子总数达到N最少需要的月数。 输入样例: 30 输出样例: 9 month small middle big sum 1 1 0 0 1 2 0 1 0 1 3 1 0 1 2 4 1 1 1 3 5 2 1 2 5 6 3 2 3 8 7 5 3 5 13 … //本人智商不够,通过列表格发现规律.. //(看了其他人写的,这题应该是斐波那契数列?但是我太菜了不会写qwq) # include <stdio.h> int main ( void ) { int small = 1 , middle , big ; int sum = 1 , month = 1 , N ; scanf_s ( "%d" , & N ) ; if ( N == 1 ) goto end ; else { small = 0 ; middle = 1 ; big = 0 ; for ( month = 2 ; sum < N ; month ++ ) { int temp ; temp = middle ; middle = small