問題
在漆黑的夜裡
四位旅行者來到了一座狹窄而且沒有護欄的橋邊
如果不借助手電筒的話
大家是無論如何也不敢過橋去的
不幸的是
四個人一共只帶了一只手電筒
而橋窄得只夠讓兩個人同時過
如果各自單獨過橋的話
四人所需要的時間分別是
分鐘
而如果兩人同時過橋
所需要的時間就是走得比較慢的那個人單獨行動時所需的時間
問題是
如何設計一個方案
讓這四人盡快過橋
JAVA實現功能如下
(jdk
jbuild
測試通過)
public class mks {
public mks() {
int[] i={
};
boolean[] j={true
true
true
true};
int go=
;
int time=
;
for(;true;)
{
if(j[
]||j[
]||j[
]||j[
])
{
if(go==
)
{
go=
;
if(j[
]==true&&j[
]==true)
{
System
out
print(i[
]+
過橋\r\n
);
System
out
print(i[
]+
過橋\r\n
);
time+=i[
];
System
out
print(
time=
+time+
\r\n
);
j[
]=false;
j[
]=false;
}
else
{
System
out
print(i[
]+
過橋\r\n
);
System
out
print(i[
]+
過橋\r\n
);
time+=i[
];
System
out
print(
time=
+time+
\r\n
);
j[
]=false;
j[
]=false;
}
}
else
{
go=
;
if(j[
]==false)
{
j[
]=true;
System
out
print(i[
]+
回來\r\n
);
time+=i[
];
System
out
print(
time=
+time+
\r\n
);
}
else
{
j[
]=true;
System
out
print(i[
]+
回來\r\n
);
time+=i[
];
System
out
print(
time=
+time+
\r\n
);
}
}
}
else
{
break;
}
}
}
}
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19201.html