java写龟兔赛跑_[阶段一]java编程比赛-龟兔赛跑

本文通过Java编程实现龟兔赛跑问题,利用多线程技术,乌龟和兔子各自一个线程,兔子每步跳100厘米并适时休息。通过分析代码,探讨线程创建、睡眠等知识点,并展示程序运行结果,强调坚持不懈的精神对于学习和生活的意义。
摘要由CSDN通过智能技术生成

题目详情

龟兔赛跑的故事大家都听过,请采用线程的知识,编写代码作比较。

具体要求如下:

1、乌龟和兔子各自一个线程。

2、乌龟每步跑1厘米,兔子每步跳100厘米。

3、兔子每跑到第100步的时候,会休息0.001秒;

4、问:50000厘米比赛谁获胜?

题目分析

这套题考查的是多线程的知识,包括线程创建,线程睡眠等。这道题目貌似是迅雷校园招聘的机试题。创建两个线程,分别是乌龟线程(TortoiseThread)和兔子(RabitThread)线程,计算跑50000 cm用的时间长度。

类设计和实现

RabitThread.java类

package com.mashen.tortoise;

public class RabitThread extends Thread {

int distance;

public RabitThread(String name,int distance) {

super(name);

this.distance=distance;

}

@Override

public void run() {

long startTime=System.currentTimeMillis();

int i=1;

while (i<=distance) {

try {

//每经过100步再休息一小会

if(distance%100==0){

Thread.sleep(1);

}

} catch (InterruptedException e) {

e.printStackTrace();

}

//步长是100cm

i=i+100;

}

long endTime=System.currentTimeMillis();

System.out.println(getName()+"奔跑"+distance+"cm共耗时:"+(endTime-startTime)+"毫秒");

}

}

TortoiseThread.java类

package com.mashen.tortoise;

public class TortoiseThread extends Thread {

int distance;

public TortoiseThread(String name,int distance) {

super(name);

this.distance=distance;

}

@Override

public void run() {

long startTime=System.currentTimeMillis();

int i=1;

while (i<=distance) {

i++;

}

long endTime=System.currentTimeMillis();

System.out.println(getName()+"奔跑"+distance+"cm共耗时:"+(endTime-startTime)+"毫秒");

}

}

用于测试的类RunTest.java

package com.mashen.tortoise;

public class RunTest {

public static void main(String[] args) {

int distance=50000;

RabitThread bt=new RabitThread("小兔子",distance);

TortoiseThread tt=new TortoiseThread("小乌龟", distance);

bt.start();

tt.start();

}

}

运行结果如下:

0818b9ca8b590ca3270a3433284dd417.png

龟兔赛跑的问题大家都耳熟能详了,小兔子因为骄傲而输掉了比赛,小乌龟因为坚持不懈而夺得了胜利。我们学习也是这样,现在困难重重,时间也不好安排,哪怕每天抽出一丁点时间来写写代码,十行,二十行都行,坚持下来,日后会豁然开朗。只有坚持不懈才能最后走向成功!共勉!工作生活亦如此!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值