蚂蚁爬杆 java_百度面试题目--蚂蚁爬杆

publicclassAntGame {privateintmaxTime=0,minTime=99999999;

Ant[] ant=newAnt[5];

Ant head=newAnt(0,0);publicvoidinitDate(ints){

ant[0]=newAnt(3,s%2*2-1);

ant[1]=newAnt(7,s/2%2*2-1);

ant[2]=newAnt(11,s/4%2*2-1);

ant[3]=newAnt(17,s/8%2*2-1);

ant[4]=newAnt(23,s/16%2*2-1);

head.setNext(ant[0]);for(inti=0;i<4;i++){

ant[i].setNext(ant[i+1]);

}

ant[4].setNext(null);

}publicvoidfindResult(){

Ant checkAnt;inttime;for(inti=0;i<32;i++){

initDate(i);

display();

time=0;while(head.getNext()!=null){

checkAnt=head.getNext();while(checkAnt!=null){

checkAnt.walk();

checkAnt=checkAnt.getNext();

}

checkAnt=head;while(checkAnt!=null&&checkAnt.getNext()!=null){if(checkAnt.getNext().posion<=0||checkAnt.getNext().posion>=27){

checkAnt.setNext(checkAnt.getNext().getNext());

checkAnt=checkAnt.getNext();

}elseif(checkAnt.getPosion()==checkAnt.getNext().getPosion()){

checkAnt.back();

checkAnt.getNext().back();

checkAnt=checkAnt.getNext().getNext();

}elsecheckAnt=checkAnt.getNext();

}

time++;

}

System.out.println(time);if(time>maxTime)

maxTime=time;elseif(time

minTime=time;

}

System.out.println("minTime:"+minTime+"\tmaxTime:"+maxTime);

}publicvoiddisplay(){

Ant checkAnt=head.getNext();while(checkAnt!=null){

System.out.print(checkAnt.getPosion()+""+checkAnt.getDirection()+"\t");

checkAnt=checkAnt.getNext();

}//System.out.println();}publicstaticvoidmain(String arg[]){

AntGame m=newAntGame();

m.findResult();

}privateclassAnt{privateintposion;privateintdirection;//1、-1分别代表正反方向privateAnt next;privateintstep=1;publicAnt(intposion,intdirection){this.posion=posion;this.direction=direction;

}publicAnt getNext() {returnnext;

}publicvoidsetNext(Ant next) {this.next=next;

}publicintgetPosion() {returnposion;

}publicintgetDirection() {returndirection;

}publicvoidwalk(){

posion+=direction*step;

}publicvoidback(){

direction=(direction+3)%4;

direction--;//运算后1、-1互换}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值