免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 10871 | 回复: 31
打印 上一主题 下一主题

三个java超级变态逻辑循环编程题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-04 10:18 |只看该作者 |倒序浏览
三个java超级变态逻辑循环编程题

java私塾作业中的三个超级变态循环题,一层层的循环把我给绕晕了,话不多说,请看题:

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

2:参加会议:有人邀请A,B,C,D,E,F6个人参加一项会议,这6个人有些奇怪,因为他们有很多要求,已知:
    (1).A,B两人至少有1人参加会议。
    (2).A,E,F3人中有2人参加会议。
    (3).B和C两人一致决定,要么两人都去,要么两人都不去。
    (4).A,D两人中只1人参加会议。
    (5).C,D两人中也只要1人参加会议。
    (6).如果D不去,那么E也决定不去。
   那么最后究竟有哪几个人参加了会议呢?

3:用程序求解:
   请回答下面10个问题:
  1、第一个答案是b的问题是哪一个?
  (a)2;(b) 3;(c)4;(d)5;(e)6
  2、唯一的连续两个具有相同答案的问题是:
  (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;
  3、本问题答案和哪一个问题的答案相同?
  (a)1;(b)2;(c)4;(d)7;(e)6
  4、答案是a的问题的个数是:
  (a)0;(b)1;(c)2;(d)3;(e)4
  5、本问题答案和哪一个问题的答案相同?
  (a)10;(b)9;(c)8;(d)7;(e)6
  6、答案是a的问题的个数和答案是什么的问题的个数相同?
  (a)b;(b)c;(c)d;(d)e;(e)以上都不是
  7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
  (a)4;(b)3;(c)2;(d)1;(e)0  (注:a和b相差一个字母)
  8、答案是元音字母的问题的个数是:
  (a)2;(b)3;(c)4;(d)5;(e)6  (注:a和e是元音字母)
  9、答案是辅音字母的问题的个数是:
  (a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数
  10、本问题的答案是:
  (a)a;(b)b;(c)c;(d)d;(e)e

论坛徽章:
0
2 [报告]
发表于 2011-07-04 11:25 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2011-07-05 09:56 |只看该作者
木有头绪

论坛徽章:
0
4 [报告]
发表于 2011-07-05 10:35 |只看该作者
没有高手给解决一下么

论坛徽章:
0
5 [报告]
发表于 2011-07-05 16:35 |只看该作者
第一题要写6个对象,写个定时线程计算监控就是了。这一题明显是初始条件不同,结果也会不同的。
第二题写6个对象,穷举2^6种可能,再一个个验证就是了。
第三个没头绪

论坛徽章:
0
6 [报告]
发表于 2011-07-07 09:45 |只看该作者
肿么还没有答案呀{:3_198:}

论坛徽章:
0
7 [报告]
发表于 2011-07-08 10:03 |只看该作者
人不多啊

论坛徽章:
0
8 [报告]
发表于 2011-07-08 16:44 |只看该作者

论坛徽章:
0
9 [报告]
发表于 2011-07-11 10:16 |只看该作者
果然够变态

论坛徽章:
0
10 [报告]
发表于 2011-07-13 10:20 |只看该作者
原来大家都不会呀?找回点自信,哦呵呵~~~~
一看题我奏晕了,把答案贴出来,大家研究研究
1:
  1. public class MaYi{
  2.    public static void main(String [] args){
  3.       MaYi t = new MaYi();
  4.       t.t1();
  5.    }
  6.    private void t1(){
  7.       Ant a1 = new Ant();
  8.       Ant a2 = new Ant();
  9.       Ant a3 = new Ant();
  10.       Ant a4 = new Ant();
  11.       Ant a5 = new Ant();
  12.       
  13.       for(int i=1;i<=2;i++){
  14.          for(int j=1;j<=2;j++){
  15.             for(int k=1;k<=2;k++){
  16.                for(int m=1;m<=2;m++){
  17.                   for(int n=1;n<=2;n++){
  18.                      //做蚂蚁的初始化
  19.                      a1.direct = i;
  20.                      a1.site = 3;   
  21.                      a1.alreadyGone = false;                  
  22.                      a2.direct = j;
  23.                      a2.site = 7;                     
  24.                      a2.alreadyGone = false;
  25.                      a3.direct = k;
  26.                      a3.site = 11;                     
  27.                      a3.alreadyGone = false;
  28.                      a4.direct = m;
  29.                      a4.site = 17;                     
  30.                      a4.alreadyGone = false;
  31.                      a5.direct = n;
  32.                      a5.site = 23;      
  33.                      a5.alreadyGone = false;
  34.                      
  35.                      for(int p=1;p<1000;p++){
  36.                         //1:让蚂蚁走,每次走一步
  37.                         if(!a1.alreadyGone){
  38.                            a1.step();
  39.                         }
  40.                         if(!a2.alreadyGone){
  41.                            a2.step();
  42.                         }
  43.                         if(!a3.alreadyGone){
  44.                            a3.step();
  45.                         }
  46.                         if(!a4.alreadyGone){
  47.                            a4.step();
  48.                         }
  49.                         if(!a5.alreadyGone){
  50.                            a5.step();
  51.                         }
  52.                         //2:判断两只蚂蚁是否会碰头,碰头就都调头
  53.                         if(a1.site==a2.site && a1.direct==2 && a2.direct==1){
  54.                            //1和2碰头了
  55.                            a1.changeDirect();
  56.                            a2.changeDirect();
  57.                         }
  58.                         if(a2.site==a3.site && a2.direct==2 && a3.direct==1){
  59.                            a2.changeDirect();
  60.                            a3.changeDirect();
  61.                         }
  62.                         if(a3.site==a4.site && a3.direct==2 && a4.direct==1){
  63.                            a3.changeDirect();
  64.                            a4.changeDirect();
  65.                         }
  66.                         if(a4.site==a5.site && a4.direct==2 && a5.direct==1){
  67.                            a4.changeDirect();
  68.                            a5.changeDirect();
  69.                         }
  70.                         //3:判断是否已经全部离开
  71.                         if(a1.alreadyGone && a2.alreadyGone && a3.alreadyGone && a4.alreadyGone && a5.alreadyGone){
  72.                            System.out.println("Over===="+p);
  73.                            break;
  74.                         }                        
  75.                      }
  76.                   }
  77.                }
  78.             }
  79.          }
  80.       }
  81.    }   
  82.    
  83. }

  84. class Ant{
  85.    //用来表示蚂蚁所在的位置
  86.    public int site = 0;
  87.    //表示蚂蚁的朝向,1表示向左,2表示向右
  88.    public int direct = 1;
  89.    //表示蚂蚁已经离开木杆
  90.    public boolean alreadyGone = false;
  91.    
  92.    public void step(){
  93.       if(direct==1){
  94.          site = site - 1;
  95.       }else{
  96.          site = site + 1;
  97.       }
  98.       if(site==0 || site==27){
  99.          alreadyGone = true;
  100.       }      
  101.    }
  102.    
  103.    public void changeDirect(){
  104.       if(direct==1){
  105.          direct = 2;
  106.       }else{
  107.          direct = 1;
  108.       }      
  109.    }
  110. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP