过桥问题的Java解决

问题:在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、10分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。

JAVA实现功能如下:(jdk1.3,jbuild7测试通过)

public class mks {
public mks() {
int[] i={1,2,5,10};
boolean[] j={true,true,true,true};
int go=1;
int time=0;
for(;true;)
{
if(j[0]||j[1]||j[2]||j[3])
{
if(go==1)
{
go=0;
if(j[0]==true&&j[1]==true)
{
System.out.print(i[0]+"过桥\r\n");
System.out.print(i[1]+"过桥\r\n");
time+=i[1];
System.out.print("time="+time+"\r\n");
j[0]=false;
j[1]=false;
}
else
{
System.out.print(i[2]+"过桥\r\n");
System.out.print(i[3]+"过桥\r\n");
time+=i[3];
System.out.print("time="+time+"\r\n");
j[2]=false;
j[3]=false;
}
}
else
{
go=1;
if(j[0]==false)
{
j[0]=true;
System.out.print(i[0]+"回来\r\n");
time+=i[0];
System.out.print("time="+time+"\r\n");
}
else
{
j[1]=true;
System.out.print(i[1]+"回来\r\n");
time+=i[1];
System.out.print("time="+time+"\r\n");
}
}
}
else
{
break;
}
}
}
}

时间: 2024-10-18 10:31:24

过桥问题的Java解决的相关文章

用Java解决国际化问题

解决|问题 如果应用系统是面向多种语言的,编程时就不得不设法解决国际化问题,包括操作界面的风格问题.提示和帮助语言的版本问题.界面定制个性化问题等. 由于Java语言具有平台无关.可移植性好等优点,并且提供了强大的类库,所以Java语言可以辅助我们解决上述问题.Java语言本身采用双字节字符编码,采用大汉字字符集,这就为解决国际化问题提供了很多方便.从设计角度来说,只要把程序中与语言和文化有关的部分分离出来,加上特殊处理,就可以部分解决国际化问题.在界面风格的定制方面,我们把可以参数化的元素,如

请教一个用JAVA解决的问题

问题描述 请教一个用JAVA解决的问题 设有i批货,每批价值Vi,重Wi,用一个载重M的卡车装,怎么使卡车装价值最高的货物,这个怎么用JAVA解决?这个模型的有什么名字嘛? 解决方案 这就是背包算法 参考:http://blog.csdn.net/double501/article/details/5895201http://blog.sina.com.cn/s/blog_49f9904d01000auc.html 解决方案二: ??当我们用FtpClient的list函数得到了服务器的列表以后

关于JAVA解决NAT穿越防火墙以及解决多级代理方面的问题

问题描述 各位师兄:要研究关于JAVA解决NAT穿越防火墙以及解决多级代理方面的问题,想搜集一些资料.希望能提供一些好资料,避免海量查询之苦,谢谢 解决方案 解决方案二:记号-解决方案三:脚印--`解决方案四:你要做什么?你可以使用UDP的方式进行连接和访问,尽量不要用TCP的方式.解决方案五:为什么要用UDP呢?UDP的丢包率太大,而且从实时性上也无法保证我程序的需要.解决方案六:到我的blog上找找吧,我翻译过一篇UDP/TCP打洞的文章!gloomyfish搜索一下就可以看到!解决方案七:

java 解决Eclipse挂掉问题的方法_java

近日,Eclipse经常挂掉,都是由于JVM崩溃的原因.每次都有以下错误日志:## A fatal error has been detected by the Java Runtime Environment:##  SIGSEGV (0xb) at pc=0x7bab036c, pid=12169, tid=3072990096## JRE version: 6.0_17-b04# Java VM: Java HotSpot(TM) Server VM (14.3-b01 mixed mod

Java解决约瑟夫问题代码实例_java

复制代码 代码如下: package list; import java.util.ArrayList; /** * Java约瑟夫问题: n个人(不同id)围成一个圈,从startId(任意数)个开始报数m(任意数)个数,数m的人出列排成新队列,m清零, * 然后又从下一个人开始数m个数开始,数到m就出列接在新队列尾部,如此重复,知道所有人都出列为止. * 打印 出列后的新队列 * * eg * int n = 10;//总人数 * int m = 3;   //报数个数 * int star

java解决hash算法冲突

看了ConcurrentHashMap的实现, 使用的是拉链法. 虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的.当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时.冲突就难免会发 生.另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出.因此,处理冲突和溢出是 哈希技术中的两个重要问题.1.开放定址法     用开放定址法解决冲突的做法是:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查

Win7系统电脑无法安装Java解决办法

原因分析1:代理服务器要求身份验证 解决方法:检查"Internet 连接代理设置"页面.注:请确保代理身份验证已关闭. 原因分析2:网络连接失败 解决方法:如果网络拥塞或者网络服务提供商的 Internet 连接不稳定,则由于安装文件未能完全下载,有时会导致软件包运行不正常. 原因分析3:下载管理器软件中断了下载过程,例如:断点续传 解决方法:将软件包保存到某个位置,并在下载完成后启动脱机安装软件包. 原因分析4:TSR(终止并常驻)程序(如 Norton AntiVirus)可能会

硬件接口的问题怎样用java解决

问题描述 怎样将地磅里面的数据读到我的计算机的超级终端里面去呢??? 解决方案 解决方案二:地磅里面的数据java串口并口编程?解决方案三:对啊!您知道的啊???解决方案四:用jni或者直接用System.getRuntime之类的执行命令解决方案五:这位同学您能讲的更清楚的吗?????解决方案六:就是说调用其他语言写的程序或者DLL这种和操作系统耦合的处理JAVA很难做

java解决单缓冲生产者消费者问题示例_java

经典的生产者消费者问题模拟.此程序模拟最简单情形--单缓冲.为模拟实际情况,consume item和produce item时加了延时,可以通过修改延时模拟不同的生成消费速率. [code] [/co/** * single buffer consumer-producer problem. * by xu(xusiwei1236@163.com). * */public class ConsumerProducer {  static Object buffer = null;  stati