兔子

SDUT 养兔子

守給你的承諾、 提交于 2020-01-28 03:17:46
Problem Description 一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。 Input 测试数据包括多组,每组一行,为整数n(1≤n≤90)。 输入以0结束。 Output 对应输出第n天有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。 Example Input 1 2 0 Example Output 1 2 Hint 数据类型可以用64位整数:long long Author majia 代码 #include <stdio.h> int main() { int n,i; long long int f[91]; f[1]=1; f[2]=2; while(~scanf("%d",&n)) { if(n==0) break; else { for(i=3;i<=n;i++) { f[i]=f[i-1]+f[i-2]; } } printf("%lld\n",f[n]); } return 0; } 来源: https://www.cnblogs.com/lushans/p/6685488.html

穷举算法和递推算法(Java)

给你一囗甜甜゛ 提交于 2020-01-26 08:59:45
穷举算法 概念: 最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况。穷举算法效率不高,但是适合一些没有明显规律可循的场合。 思想: 在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定范围搜索答案。指定范围之后,就可以使用循环和条件判断语句进行逐步验证结果了。 案例:鸡兔同笼问题 在一个笼子里关着若干只鸡和若干兔子。一共有 35 个头,和 94 只脚。问在一个笼子里鸡和兔子各有多少个。 package cmd.chengxuyuanzhilu.arithmetic; import java.util.Scanner; /** * @author 微信公众号:程序员之路 * 博客:http://www.cnblogs.com/chengxuyuanzhilu/ * 穷举算法 */ public class Exhaustion { public static void exhaustion(int head,int foot){ int chicken,rabbit; for(chicken=0;chicken<= head;chicken++){ rabbit=head-chicken; if(chicken*2+rabbit*4 == foot){ System.out.println(String.format("鸡有 %d只,兔子有%d只", chicken

鸡兔同笼解法

回眸只為那壹抹淺笑 提交于 2020-01-25 18:57:22
原题 今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何? 翻译 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔? 解法 抬脚法(常用) (总脚数-总头数×鸡的脚数)÷(兔的脚数-鸡的脚数)=兔的只数 (94-35×2)÷2=12(兔子数) 总头数(35)-兔子数(12)=鸡数(23) 解释:让兔子和鸡同时抬起两只脚,这样笼子里的脚就减少了总头数×2只,由于鸡只有2只脚,所以笼子里只剩下兔子的两只脚,再÷2就是兔子数。 假设法 方程法 来源: CSDN 作者: 万方名 链接: https://blog.csdn.net/weixin_42599499/article/details/103885949

Java初学者每日小程序01

孤街浪徒 提交于 2020-01-21 12:18:49
@[Java初学者每日小程序01] 练习题地址:https://bbs.csdn.net/topics/110067294 package cn.myz.pro; /** * 每日小程序1 * 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子 * ,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死, * 问每个月的兔子总数为多少? * @author ccc *1 1 2 3 5 8 13 21 *我们算十二个月的兔子总数有多少 */ public class Order_Day01 { public static void main(String[] args) { int num1=1,num2=1; int sum = 0; int[] num3=new int[12];//声明一个数组,用来存储每个月的兔子数量 for(int i=0;i<num3.length;i++) { if(i<2) { num3[i]=1; }else { num3[i]=num3[i-1]+num3[i-2]; } } for(int i=0;i<num3.length;i++) { System.out.println("第"+(i+1)+"月:"+num3[i]+"只"); sum=sum+num3[i]; } System.out.println(num3.length+

7-22 龟兔赛跑 (20分)

巧了我就是萌 提交于 2020-01-21 03:31:56
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出 @_@ ,兔子赢输出 ^_^ ,平局则输出 -_- ;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 #include <stdio.h> #define V_T 3 #define V_R 9 #define S 0 #define R 1 int main(void) { int s_t = 0; int s_r = 0; int status = R; int T = 0; scanf("%d", &T); // 计时器 int timer = 10; int minutes = 0; while(minutes < T) { if(status == R) { if(timer == 0) { if(s_r > s_t) { //休息 status = S; timer = 30; }

Python基础题练习之斐波那契数列

ぃ、小莉子 提交于 2020-01-19 19:45:31
斐波那契数列 程序分析: 题目:兔子问题:“假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄,问一年后共有多少对兔子?” 分析:分析:第一个月兔子没有繁殖能力,所以还是一对;两个月后生下一对兔子,共有两对;三个月后,老兔子生下一对,小兔子还没有繁殖能力,所以一共是三对,以此类推 1 1 2 3 5 8 13 … 程序示例: "" " 题目:斐波那契数列 版本: 1.0 作者:假书生@ 日期: 2020 年 1 月 19 日 "" " def Func ( n ) : #第一个月和第二个月都是 1 对 if n == 1 or n == 2 : return 1 else : # 从第三个月开始 返回上一个数加上上一个数 return Func ( n - 1 ) + Func ( n - 2 ) # func ( 5 ) + func ( 4 ) # func ( 4 ) + func ( 3 ) + func ( 3 ) + func ( 2 ) # func ( 3 ) + func ( 2 ) + func ( 2 ) + func ( 1 ) + func ( 2 ) + func ( 1 ) + 1 # func ( 2 ) + func ( 1 ) + 1 + 1 + 1 + 1 + 1

使用斐波那契数兔子

∥☆過路亽.° 提交于 2020-01-17 13:19:42
package com.example.demo.contorller; public class test1 { public static void main(String[] args) { //f(n) = f(n - 1) + f(n - 2)斐波那契约 //有一对兔子,第三个月就能生一对兔子,以后每个月这一对兔子都生一对兔子;新出生的兔子第三个月也能开始生兔子,也是之后每个月都生一对兔子 math ma=new math(); for (int i=1;i<=30;i++){ System.out.println(math.fmath(i)); } } } class math{ public static int fmath(int x){ if (x==1||x==2){ return 1; }else{ return fmath(x-1)+fmath(x-2); } } } 来源: CSDN 作者: 优秀是一种信仰 链接: https://blog.csdn.net/weixin_40593587/article/details/104016022

兔子繁殖(easy)

社会主义新天地 提交于 2020-01-17 04:13:30
Description   一对成年兔子每月生一对小兔子,而每一对小兔子出生一个月后便有了生殖能力,两个月后生下第一对小兔子。如果第1个月时都有一对刚出生的小兔子,而且这对小兔子到第3个月时生下第一对小兔。假设所有小兔子都不死亡,那么到第n个月时将会有多少对兔子? Input 输入只有一个数n(n<=36)。 Output 输出只有一个数:第n个月时的兔子对数。 Sample Input 3 Sample Output 2 //第1个月的时候有1对小兔子,所以总数只有1只,到了第二个月的时候,这对小兔子有了生殖能力,但总数还只是只有1只,到了第三个月时,这对小兔子生下了1对小兔子,所以总数就有3只。 #include<iostream> using namespace std; int main() { int n,i; int a[37]; cin>>n; a[1]=1; a[2]=1; for (i=3;i<=n;i++) a[i]=a[i-1]+a[i-2]; cout<<a[n]; return 0; } 来源: https://www.cnblogs.com/YYC-0304/p/9500117.html

兔子问题

情到浓时终转凉″ 提交于 2020-01-17 04:11:51
兔子 描述 兔子具有很强的繁殖能力。一对成年兔子每个月可以繁殖一对小兔子,而一对小兔子经过m个月之后,就会长成一对成年兔子。通过分析,我们可以看出:若m=2的时候,每个月兔子的对数构成了一个Fibonacci数列。 但是,若m<>2,这个问题看起来就不那么简单了。你的任务是计算:假定初始只有一对兔子,那么,经过d个月之后,共有多少对兔子?可以假定,在此阶段没有任何兔子死亡。 输入 输入包括多组测试数据。每组测试数据的一行中包括2个整数m(1<=m<=10),d(1<=d<=30)。当测试数据遇到一行中有两个0时,即m=d=0,测试数据结束。 输出 针对每组测试数据,在每一行输出经过d个月后共有多少对兔子。 样例输入 2 3 3 5 0 0 样例输出 5 9 #include<stdio.h> int main() { long N,T,s[20],i,j,sum; while(scanf("%ld",&N)!=EOF) { scanf("%ld",&T); for(i=0;i<N;i++) s[i]=0; s[N]=1; for(i=0;i<=T;i++) { sum=0; for(j=N;j>=0;j--) { sum+=s[j]; } s[N]+=s[N-1]; for(j=N-1;j>0;j--) s[j]=s[j-1]; s[0]=s[N]; } printf("%ld\n