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

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

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

    hello world

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

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


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

    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
    --;
    ???????????????????????
    //運(yùn)算后1、-1互換
    ????????}
    ????}
    }

    posted on 2009-10-12 15:19 聽風(fēng) 閱讀(620) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA

    主站蜘蛛池模板: 久9热免费精品视频在线观看| 成人A级毛片免费观看AV网站| 亚洲人成电影在线天堂| 国产h肉在线视频免费观看| 精品亚洲AV无码一区二区三区| 又粗又黄又猛又爽大片免费| 久久免费精品一区二区| 一本天堂ⅴ无码亚洲道久久| 亚洲中文字幕不卡无码| av免费不卡国产观看| 国产精品免费久久久久电影网| 亚洲国产品综合人成综合网站| 四虎国产精品免费视| 国产精品入口麻豆免费观看| 亚洲一区二区三区免费| 456亚洲人成在线播放网站| 久久亚洲精品无码播放| 成人免费AA片在线观看| a级毛片免费播放| 亚洲午夜无码久久| 亚洲欧洲在线观看| 亚洲国产一区明星换脸| 噼里啪啦电影在线观看免费高清| a国产成人免费视频| 亚洲av永久中文无码精品综合| 久久精品国产亚洲AV麻豆~| 免费一级毛片不卡在线播放| 无码日韩精品一区二区三区免费| 深夜a级毛片免费无码| 亚洲综合色7777情网站777| 亚洲小说区图片区另类春色| 日韩免费无码一区二区视频| 91手机看片国产永久免费| 中文无码成人免费视频在线观看| 色窝窝亚洲AV网在线观看| 亚洲国产精品线观看不卡| 亚洲国产一二三精品无码| 一级毛片直播亚洲| 韩国免费三片在线视频| 成年黄网站色大免费全看| 久久精品乱子伦免费|