博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5只蚂蚁走木棍问题
阅读量:6367 次
发布时间:2019-06-23

本文共 831 字,大约阅读时间需要 2 分钟。

有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。

public class Ant {
private static int LONG = 27;
private int[] a = { 3, 7, 11, 17, 23 };
private int min = 0, max = 0;
public void gogogo() {
for (int i = 0; i < a.length; i++) {
min = Math.max(min, Math.min(a[i], LONG - a[i]));
max = Math.max(max, Math.max(a[i], LONG - a[i]));
}
}
public int getMax() {
return max;
}
public int getMin() {
return min;
}
public static void main(String[] args) {
Ant client = new Ant();
client.gogogo();
System.out.println(client.getMax());
System.out.println(client.getMin());
}
}
“当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。“ 
其实你可以当作它们擦肩而过。 
所以,最长时间应该是 最左短端的蚂蚁一直往右走 和 最右短端的蚂蚁一直往左走 两个时间的最大值。(不考虑别的蚂蚁,一直走就对了) 
最小时间应该是 左边的3个蚂蚁往左走,右边的2个蚂蚁往右走 花的时间。 

转载地址:http://ofrma.baihongyu.com/

你可能感兴趣的文章
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>
HTML的音频和视频
查看>>
Unsupported major.minor version 52.0
查看>>
面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
查看>>
优酷网架构学习笔记
查看>>
把HDFS里的json数据转换成csv格式
查看>>
WEEX-EROS | 集成并使用 bindingx
查看>>
广州牵引力来告诉你学编程先学什么语言好?
查看>>
广州牵引力总结初学者怎样学好UI设计?
查看>>
使用Metrics方法级远程监控Java程序
查看>>
Spring核心系列之Bean的生命周期
查看>>
VasSonic源码之并行加载
查看>>
小程序 LRU 存储设计
查看>>
Android 多线程之阻塞队列
查看>>
[译] 关于 Angular 依赖注入你需要知道的
查看>>