「java乌龟爬坡问题」Java小乌龟

博主:adminadmin 2022-11-24 22:47:08 75

本篇文章给大家谈谈java乌龟爬坡问题,以及Java小乌龟对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java算法题——龟兔赛跑

public class Test1{

public static void main(String[] args) throws InterruptedException {

   int v1=25,v2=10,t=20,s=3,l=100;

          

          

         Scanner scanner=new Scanner(System.in);

           

         v1=scanner.nextInt();    

          v2=scanner.nextInt();

         t=scanner.nextInt();

         s=scanner.nextInt();

         l=scanner.nextInt();

          

         int sum1=0,sum2=0;

         boolean stop=false;

         int stopcount=0;

         int i=0;

         for ( i = 0; i  l/v2; i++) {

             

          

          if(sum1=l||sum2=l)//如果有一个跑到了终点就结束了

          break;

          

             if(stopcount==s)

                 stop=false; //如果休息的时间够了,就开始跑

              

              

             if(sum1-sum2=t)

                 stop=true; //如果超过了t米,就休息

              

              

             if(!stop)

                sum1+=v1; //当兔子不休息的时候跑

             else

                 stopcount++; //休息的时间计数

              

             sum2+=v2;//乌龟每次都会跑

              

              

             System.out.print("兔子跑了:"+sum1+"米");

             System.out.println("乌龟跑了:"+sum2+"米");

        }

         if(sum1==sum2)

             System.out.println("D"+i);

         else if(sum1=l)

             System.out.println("R"+i);

         else if(sum2=l)

             System.out.println("T"+i);

}

}

java中龟兔赛跑问题结果为什么出现小数点后好多位?

这是浮点数运算误差造成的,在所有计算机程序设计语言中都会出现的,不可避免,具体原因这里三言两语说不清,自己百度。解决办法就是尽量改用整数运算,比如0.1米可以改为1分米,然后用整型变量来储存和运算,最后输出的时候如果要用米为单位,再把结果除以10即可。

已知龟兔起点相差1000米,乌龟速度10,兔子速度20,求多久能相遇,用JAVA代码怎么写?

LZ题目给的不是很准确。。跑道是否为环形跑道?

要用JAVA 写出来,首先就要去分析这道数学题中的逻辑问题

1:若为直线跑道,要有相遇 必然是乌龟在前,兔子在后。。定义为追击问题。。

求出速度差 v = 20 -10 = 10

追击路程为 s = 1000

可以得出相遇时间,也就是兔子追上乌龟的时间为 t = 1000/10 = 100(单位题目没有给出。分析应该是min 分钟)

2:若为环形跑道

一圈是多少米,题目没有给出。。故无法算出

分析完数学逻辑,再来写程序代码

public class Test9 {

public static void main(String[] args) {

//定义乌龟速度

int v1 = 10;

//定义兔子速度

int v2 = 20;

//定义整个路程

int sum = 1000;

//求出时间

double t = sum/(v2-v1);

System.out.println(t);

}

}

JAVA龟兔赛跑问题

先让兔子进入阻塞状态,然后等乌龟跑完终点后唤醒兔子线程就行;下面是各个方法的配套使用(网上copy的,总结的很不错)1. sleep() 方法:sleep() 允许 指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间

内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。

典型地,sleep() 被用在等待某个资源就绪的情形:测试发现条件不满足后,让线程阻塞一段时间后

重新测试,直到条件满足为止。

2. suspend() 和 resume() 方法:两个方法配套使用,suspend()使得线程进入阻塞状态,并且不会

自动恢复,必须其对应的resume() 被调用,才能使得线程重新进入可执行状态。典型地,suspend() 和

resume() 被用在等待另一个线程产生的结果的情形:测试发现结果还没有产生后,让线程阻塞,另一个

线程产生了结果后,调用 resume() 使其恢复。

3. yield() 方法:yield() 使得线程放弃当前分得的 CPU 时间,但是不使线程阻塞,即线程仍处于

可执行状态,随时可能再次分得 CPU 时间。调用 yield() 的效果等价于调度程序认为该线程已执行了足

够的时间从而转到另一个线程。

4. wait() 和 notify() 方法:两个方法配套使用,wait() 使得线程进入阻塞状态,它有两种形式

,一种允许指定以毫秒为单位的一段时间作为参数,另一种没有参数,前者当对应的 notify() 被调用或

者超出指定时间时线程重新进入可执行状态,后者则必须对应的 notify() 被调用。

详情请见

关于java乌龟爬坡问题和Java小乌龟的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。