兔子

菲波那切数列

泪湿孤枕 提交于 2020-02-26 23:34:45
一、菲波那切数列的定义 (1)斐波那契数列的定义如下: (2)古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (3)代码实现的功能: 1.打印输出前20位的斐波那契数 2.打印1-100之间的菲波那切数列 3.判断一个数是否是斐波那契数列 4.递归求解斐波那契数列 二、代码实现 package 练习 ; public class Feibo { public static void main ( String [ ] args ) { // TODO Auto-generated method stub /** * 1.打印输出前20位的斐波那契数 * 2.打印1-100之间的菲波那切数列 * 3.判断一个数是否是斐波那契数列 * 4.递归求解斐波那契数列 */ forFeibo ( ) ; whilefeibo ( ) ; Isfeibo ( 50 ) ; System . out . println ( "第10位斐波那契数是:" + fib ( 10 ) ) ; } //1.打印输出前20位的斐波那契数 public static void forFeibo ( ) { long a1 = 1 , a2 = 1 , result = 0 ; for ( int i = 3 ;

Scratch2的鸡兔同笼

戏子无情 提交于 2020-02-23 04:53:28
解题思路 鸡兔同笼新算法:已知共有鸡和兔15只,共有40只脚,问鸡和兔各有几只。算法:假设鸡和兔训练有素,吹一声哨,它们抬起一只脚,(40-15=25) 。再吹一声哨,它们又抬起一只脚,(25-15=10) ,这时鸡都一屁股坐地上了,兔子还两只脚立着。所以,兔子有10/2=5只,鸡有15-5=10只。 来源: CSDN 作者: 时代曙光 链接: https://blog.csdn.net/lck19930315/article/details/104444462

经典Java编程50题

六眼飞鱼酱① 提交于 2020-02-17 15:13:56
这些题目是老薛推荐的,适合于学习完Java基础语法却又不知道自己的掌握程度的程序员,通过这些题目可以锻炼我们的思维 [程序一] 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析:首先我们可以在草稿纸上写出前面几天兔子的对数,再观察是否有 写出前几个月的兔子对数1,1,2,3,5,8,13… 发现其规律和高中的数列一样an=an-1+an-2;于是就很自然的能写出其算法 public class RabbitsNumber { public static void main ( String [ ] args ) { for ( ; true ; ) { //在原来的基础上加了循环,输入一次后程序不退出 //显示你是否进去,exit退出 System . out . print ( "Please make your choose(enter or exit):" ) ; Scanner scanner = new Scanner ( System . in ) ; //创建scanner对象 String str = "" ; if ( ! str . equal ( "exit" ) ) { //判断如果用户输入exit则退出程序 System . out . print (

递归算法

只愿长相守 提交于 2020-02-12 15:35:40
递归(recursion):程序调用自身的编程技巧。 递归满足2个条件: 1)有反复执行的过程(调用自身) 2)有跳出反复执行过程的条件(递归出口) 递归例子: (1)阶乘 n! = n * (n-1) * (n-2) * ...* 1(n>0) //阶乘 int recursive(int i) { int sum = 0; if (0 == i) return (1); else sum = i * recursive(i-1); return sum; } (2)河内塔问题 //河内塔 void hanoi(int n,int p1,int p2,int p3) { if(1==n) cout<<“盘子从”<<p1<<“移到”<<p3<<endl; else { hanoi(n-1,p1,p3,p2); cout<<“盘子从”<<p1<<“移到”<<p3<<endl; hanoi(n-1,p2,p1,p3); } } (3)全排列 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。 如1,2,3三个元素的全排列为: 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 //全排列 inline void Swap(int &a,int &b) { int temp=a

PTA 龟兔赛跑 (20分)

青春壹個敷衍的年華 提交于 2020-02-04 19:12:18
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出@ @,兔子赢输出 _ ,平局则输出- -;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 # include <iostream> using namespace std ; int main ( ) { int T , rabbit = 0 , turtle = 0 , flag = 0 ; cin >> T ; for ( int i = 0 ; i < T / 10 ; ++ i ) { turtle + = 30 ; if ( flag == 0 ) { rabbit + = 90 ; if ( rabbit > turtle ) flag = 3 ; } else flag -- ; } turtle + = 3 * ( T % 10 ) ; if ( flag == 0 )

多线程06:龟兔赛跑

元气小坏坏 提交于 2020-02-04 19:11:44
案例:龟兔赛跑-Race 1、首先来个赛道的距离,然后要离终点越来越近 2、判断比赛是否结束,结束就来看下谁胜利了 3、胜利后,打印出胜利者 4、龟兔赛跑开始,相当于两条线程开始跑了,看谁先到最后一步 5、然后,因为故事中是乌龟赢的,兔子要睡觉,所以我们来模拟兔子睡觉 6、最后,乌龟赢得了比赛 实现了Runnable接口,共享一条跑道。丢入Thread代理对象,调用start()方法开启两个线程代表兔子和乌龟,让兔子每10步并且隔10ms睡一觉,让乌龟赢。 1 package com.thread.demo01; 2 3 //模拟龟兔赛跑 4 public class Race implements Runnable { 5 6 //胜利者 7 private static String winner; 8 9 @Override 10 public void run() { 11 for (int i = 0; i <= 100; i++) { 12 13 //模拟兔子休息,每10步休息10毫秒 14 if (Thread.currentThread().getName().equals("兔子") && i % 10 == 0) { 15 try { 16 Thread.sleep(10); 17 } catch (InterruptedException e) { 18 e

初识python 之 兔子生崽(小练习)

左心房为你撑大大i 提交于 2020-02-03 15:15:48
题目:有一对兔子,从出生后第三个月起每个月都生一对小兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,每个月的兔子总数为多少?思路分析: 月份 兔子数 规律1 2 2**12 2 2**13 2+2 2**24 2+2 2**25 2+2 2**26 (2+2)*2 2**37 (2+2)*2 2**38 (2+2)*2 2**39 (2+2)*2*2 2**4从规律可以看出,实际兔子数据就是2的(月分数-1)幂次方问题。代码如下: while True: month = int(input('您想预测第几个月的兔子数?(0退出)\n')) if month==0: print('感谢您的使用!') break times = month // 3 tz_num = 2**(times+1) print('第%d月的兔子数是:%d'%(month,tz_num)) 来源: https://www.cnblogs.com/simple-li/p/11355069.html

7-22 鸡兔同笼 (10分)

旧巷老猫 提交于 2020-02-02 03:59:48
分析 列出所有可能的情况 如果a%4是等于0的话,那就证明这个刚好n只兔子( 最少 动物数) 那么下面是无必要的,实际上只有3种可能 1.最小数正好n只兔子 2.最小数正好n只兔子多了一只鸡 3.不符合 如果条件符合那么 最大 数永远是a/2,因为这是一个偶数 代码 # include <iostream> using namespace std ; int main ( ) { int n ; cin >> n ; for ( int i = 0 ; i < n ; i ++ ) { int a ; cin >> a ; //脚总数 if ( a % 4 == 0 ) { cout << a / 4 << ' ' << a / 2 << endl ; } else if ( a % 4 == 2 ) { cout << ( a + 2 ) / 4 << ' ' << a / 2 << endl ; } else { cout << "0 0" << endl ; } } } 来源: CSDN 作者: 45159762 链接: https://blog.csdn.net/qq_45159762/article/details/104137106

不死神兔

巧了我就是萌 提交于 2020-01-31 08:40:10
不死神兔 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月 又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少? 由此可见兔子对象的数据是:1 , 1 , 2 , 3 , 5 , 8 ,13,21,34,55,89.,144,. public class 不死神兔 { public static void main ( String [ ] args ) { int sum = 2 ; int a = 1 ; int b = 1 ; for ( int i = 2 ; i < 12 ; i ++ ) { int temp ; temp = b ; b = a + b ; a = temp ; } System . out . println ( b ) ; } } 144 **注解:**从第三个数开始,每个数都是前两个数之和,求和就完了,难点在于,求和的两个数怎样运作,假设有ab两个数, 我这里的操作就是将ab同时向后移动一位 来源: CSDN 作者: .墨迹. 链接: https://blog.csdn.net/y18791050779/article/details/104110340

龟兔赛跑预测---蓝桥

旧巷老猫 提交于 2020-01-28 15:36:31
描述   话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。 然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。 输入 输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数) 输出 输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。 第二行输出一个正整数,表示获胜者