<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

    主站蜘蛛池模板: 亚洲高清无码专区视频| 国产成人免费高清在线观看| 亚洲精品自产拍在线观看| 免费精品国产自产拍在线观看 | 久久精品国产亚洲AV蜜臀色欲| 久久精品无码专区免费东京热 | 无码国产亚洲日韩国精品视频一区二区三区| 2019亚洲午夜无码天堂| 亚洲成综合人影院在院播放| 色五月五月丁香亚洲综合网| 国产一区二区免费| 亚洲AV综合色区无码一区| 亚洲国产成人无码AV在线影院| 啦啦啦www免费视频| 美女扒开尿口给男人爽免费视频| 免费少妇a级毛片人成网| eeuss草民免费| 亚洲码国产精品高潮在线| 无码一区二区三区免费| 亚洲国产日韩在线观频| sihu国产精品永久免费| 九月丁香婷婷亚洲综合色| 麻花传媒剧在线mv免费观看| 亚洲综合精品伊人久久| 亚洲精品国精品久久99热| 97无码人妻福利免费公开在线视频| 亚洲高清在线mv| 免费国产黄网站在线观看| 亚洲天堂一区二区三区四区| 在线精品免费视频| 久久不见久久见免费影院www日本| 亚洲AV日韩精品久久久久| 欧美男同gv免费网站观看| 免费高清A级毛片在线播放| 亚洲av午夜成人片精品网站| 可以免费看黄视频的网站| 国产成人综合亚洲绿色| 免费黄色小视频网站| 国产乱子伦精品免费视频| 亚洲成a人片在线观看播放| 日韩免费观看视频|