欢迎来到天天文库
浏览记录
ID:14157163
大小:48.00 KB
页数:7页
时间:2018-07-26
《5只蚂蚁走木棍问题的递归解法(java实现)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、题目描述: 有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。 在网上无意间看到这个小问题,觉得挺有趣的,自己分析后给出了递归方法来处理它算法思想、步骤都在code的注释里有所解释Java代码1.package com.leochan;
2、2. 3.import java.util.LinkedList; 4. 5.public class RecursionAntWalker { 6. 7. public static int spendTime = 0; 8. 9. public static int totalLength = 27; 10. 11. public static void main(String[] args) { 12. 13. recursionTest(); 14. 15. }
3、 16. 17. // 递归计算32种不同情况下所需要的时间。 1. private static void recursionTest() { 2. int count = 0; 3. for (int d1 = -1; d1 <= 1; d1 += 2) { 4. for (int d2 = -1; d2 <= 1; d2 += 2) { 5. for (int d3 = -1; d3 <= 1; d3 += 2) { 6.
4、 for (int d4 = -1; d4 <= 1; d4 += 2) { 7. for (int d5 = -1; d5 <= 1; d5 += 2) { 8. count++; 9. spendTime = 0; 10. Ant a = new Ant(3); 11.
5、 Ant b = new Ant(7); 12. Ant c = new Ant(11); 13. Ant d = new Ant(17); 14. Ant e = new Ant(23); 15. a.direction = d1; 16.
6、 b.direction = d2; 17. c.direction = d3; 18. d.direction = d4; 1. e.direction = d5; 2. 3. LinkedList testCase = new LinkedList(); 4.
7、5. testCase.add(a); 6. testCase.add(b); 7. testCase.add(c); 8. testCase.add(d); 9. testCase.add(e); 10. 11.
8、 System.out.print("count=" + count + " d1=" + d1 12. + " d2=" + d2 +
此文档下载收益归作者所有