<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hello world

    隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
    數(shù)據(jù)加載中……

    百度面試題目--螞蟻爬桿


    有一根27厘米的細木桿,在第3厘米、7厘米、11厘米、17厘米、23厘米這五個位置上各有一只螞蟻。木桿很細,不能同時通過一只螞蟻。開始時,螞蟻的 頭朝左還是朝右是任意的,它們只會朝前走或調(diào)頭,但不會后退。當任意兩只螞蟻碰頭時,兩只螞蟻會同時調(diào)頭朝反方向走。假設螞蟻們每秒鐘可以走一厘米的距 離。編寫程序,求所有螞蟻都離開木桿的最小時間和最大時間。

    public?class?AntGame?{
    ????
    private?int?maxTime=0,minTime=99999999;
    ????Ant[]?ant
    =new?Ant[5];
    ????Ant?head
    =new?Ant(0,0);
    ????
    ????
    public?void?initDate(int?s){
    ????????ant[
    0]=new?Ant(3,s%2*2-1);
    ????????ant[
    1]=new?Ant(7,s/2%2*2-1);
    ????????ant[
    2]=new?Ant(11,s/4%2*2-1);
    ????????ant[
    3]=new?Ant(17,s/8%2*2-1);
    ????????ant[
    4]=new?Ant(23,s/16%2*2-1);
    ????????
    ????????head.setNext(ant[
    0]);
    ????????
    for(int?i=0;i<4;i++){
    ????????????ant[i].setNext(ant[i
    +1]);
    ????????}
    ????????ant[
    4].setNext(null);
    ????}
    ????
    ????
    public?void?findResult(){
    ????????Ant?checkAnt;
    ????????
    int?time;
    ????????
    for(int?i=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();
    ????????????????????}
    ????????????????????
    else?if(checkAnt.getPosion()==checkAnt.getNext().getPosion()){
    ????????????????????????checkAnt.back();
    ????????????????????????checkAnt.getNext().back();
    ????????????????????????checkAnt
    =checkAnt.getNext().getNext();
    ????????????????????}
    else????
    ????????????????????????checkAnt
    =checkAnt.getNext();
    ????????????????}
    ????????????????time
    ++;
    ????????????}
    ????????????System.out.println(time);
    ????????????
    if(time>maxTime)
    ????????????????maxTime
    =time;
    ????????????
    else?if(time<minTime)
    ????????????????minTime
    =time;
    ????????}
    ????????System.out.println(
    "minTime:"+minTime+"\tmaxTime:"+maxTime);
    ????}
    ????
    ????
    public?void?display(){
    ????????Ant?checkAnt
    =head.getNext();????????????????
    ????????
    while(checkAnt!=null){
    ????????????System.out.print(checkAnt.getPosion()
    +"?"+checkAnt.getDirection()+"\t");
    ????????????checkAnt
    =checkAnt.getNext();
    ????????}
    ????????
    //System.out.println();
    ????}
    ????
    ????
    public?static?void?main(String?arg[]){
    ????????AntGame?m
    =new?AntGame();
    ????????m.findResult();
    ????}
    ????
    ????
    private?class?Ant{
    ????????
    private?int?posion;
    ????????
    private?int?direction;//1、-1分別代表正反方向
    ????????private?Ant?next;
    ????????
    private?int?step=1;
    ????????
    public?Ant(int?posion,int?direction){
    ????????????
    this.posion=posion;
    ????????????
    this.direction=direction;
    ????????}
    ????????
    public?Ant?getNext()?{
    ????????????
    return?next;
    ????????}
    ????????
    public?void?setNext(Ant?next)?{
    ????????????
    this.next?=?next;
    ????????}
    ????????
    public?int?getPosion()?{
    ????????????
    return?posion;
    ????????}
    ????????
    public?int?getDirection()?{
    ????????????
    return?direction;
    ????????}????????
    ????????
    public?void?walk(){
    ????????????posion
    +=direction*step;
    ????????}
    ????????
    public?void?back(){
    ????????????direction
    =(direction+3)%4;
    ????????????direction
    --;
    ???????????????????????
    //運算后1、-1互換
    ????????}
    ????}
    }

    posted on 2009-10-12 15:19 聽風 閱讀(621) 評論(0)  編輯  收藏 所屬分類: JAVA

    主站蜘蛛池模板: 一级毛片在线完整免费观看| 亚洲人配人种jizz| 黄页网址在线免费观看| 成熟女人牲交片免费观看视频 | 中文字幕精品亚洲无线码一区 | a级毛片在线免费观看| 亚洲午夜福利717| a级毛片免费完整视频| 亚洲av无码一区二区三区乱子伦 | 一个人看的免费视频www在线高清动漫 | 亚洲香蕉在线观看| 成人毛片免费观看视频| 亚洲经典千人经典日产| 免费观看四虎精品国产永久| 十八禁的黄污污免费网站| 亚洲欧洲无码AV电影在线观看| 丁香花在线视频观看免费| 亚洲色图国产精品| 美女网站免费福利视频| 亚洲精品国产av成拍色拍| 亚洲不卡AV影片在线播放| 2022免费国产精品福利在线| 国产亚洲精品xxx| 久久久久久精品免费看SSS| 亚洲最大无码中文字幕| 亚洲国产精品13p| 一级毛片免费观看| 久久亚洲精品专区蓝色区| 免费va人成视频网站全| a级毛片免费全部播放| 亚洲国产精品综合久久网各| 免费v片在线观看品善网| 嫩草在线视频www免费观看| 激情五月亚洲色图| a级亚洲片精品久久久久久久| 99re热精品视频国产免费| 亚洲aⅴ无码专区在线观看| 亚洲综合伊人久久综合| 美女视频黄免费亚洲| 亚洲视频在线免费| 亚洲欧洲日韩国产一区二区三区|