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

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

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

    JustJavaIt的Blog

    2011年7月14日 #

    一道好玩兒的"移火柴"面試題

        還記得小時候增加或移動一根火柴使等式成立的趣味題嗎?嘿嘿,今天就和大家分享一道面試題,和“火柴題”很像,因此也更像是趣味題,做起來非常有意思O(∩_∩)O。廢話不多說,直接上題:
       
    /*
      下面這段C程序想要輸出20個減號,不過,粗心的程序員把代碼寫錯了,你需要把下面的代碼修改正確,不過,你只能增加或是修改其中的一個字符,請你給出三種答案。
      
    */
    int n = 20;
    for(int i=0; i<n; i--)
    {
         printf("-");
    }
          
        題目很簡單,相信任何一個程序員都是能看懂的,這題不考復(fù)雜的專業(yè)知識,當(dāng)趣味題做就行了,注意題目要求“給出三種答案”,不好漏解就好。
       
        下面帖上我的解題思路:   

        簡單分析一下程序不難看出,“粗心的程序員”把i++寫成了i--,導(dǎo)致循環(huán)不能執(zhí)行20次。因此,我們的最終目的就是讓for循環(huán)執(zhí)行20次。題目的要求是只能增加或修改一個字符,這么一來,可以修改的也只有"int n=20"和"for (int i=0;i<n;i--)"這兩行了。簡單嘗試一下修改n的數(shù)值,很快發(fā)現(xiàn)行不通,所以解題的關(guān)鍵就是在for循環(huán)條件里下功夫

        首先我們嘗試一下修改"int i=0"中的i值,由于要同時滿足i<20和i-20>=20,即40<=i<20,顯然不可能。

        接著,嘗試修改"i<n"這個條件表達式,稍作思考,我們發(fā)現(xiàn)如果給i前面加個符號,變成"-i<n",也就是"i>-20",那么每次循環(huán)依次是0>-20,-1>-20 ... -19>-20正好能運行20次,符合題意!這樣,第一種解法就出來了:

    1 int n = 20;
    2 for(int i=0-i<n; i--)
    3 {
    4      printf("-");
    5 }

        再看看修改"i--"有沒有希望,改成i++顯然是不行了,那改一下變量呢?n--?竟然是可以的!每次循環(huán)的條件為0<20,0<19 ... 0<1,同樣是20次循環(huán),太神奇了!這題告訴我們for(int i=0; i<n; n--)也是能做n次循環(huán)的,雖然我們平常幾乎不這么寫,因為n往往是不可變的(比如特定數(shù)組的長度,容器的size等)。解法二:

    1 int n = 20;
    2 for(int i=0; i<n; n--)
    3 {
    4      printf("-");
    5 }

        前兩種解法總體上還是挺容易想到的,第三種就要繞一些了,我也是想了半天(笨啊o(>﹏<)o)。回到修改"i<n"上,由于在c語言中非0即true,任何一個int值都是可以當(dāng)布爾值來使的,因此可以試著把"i<n"換成數(shù)值,比如i+n,i-n,i*n等等,而i+n恰好符合題意(很詭異的說~)解法三:

    1 int n = 20;
    2 for(int i=0; i+n; i--)
    3 {
    4      printf("-");
    5 }

        好了,這題基本做完了,不知道還有木有別的解法,有的話給我留言哈O(∩_∩)O

    posted @ 2011-07-14 11:47 JustJavaIt 閱讀(2041) | 評論 (4)編輯 收藏

    僅列出標(biāo)題  
    主站蜘蛛池模板: 亚洲av日韩av无码黑人| 好吊妞788免费视频播放| 中文字幕av免费专区| aa级毛片毛片免费观看久| 久视频精品免费观看99| 在线看片韩国免费人成视频| 真实乱视频国产免费观看| 国产av无码专区亚洲国产精品 | 美女视频黄是免费的网址| 日本成人免费在线| 亚洲乱码国产一区三区| 亚洲国产视频网站| 羞羞视频免费观看| 99精品视频免费在线观看| 国产一级做a爱免费视频| 久久精品国产99精品国产亚洲性色| 亚洲色成人四虎在线观看| 在线播放免费人成毛片乱码| 在线天堂免费观看.WWW| 久久久久久久综合日本亚洲| 美女黄色毛片免费看| 亚洲日韩人妻第一页| 中文字幕乱码系列免费| 精品亚洲A∨无码一区二区三区| 久久久亚洲精华液精华液精华液 | 中国在线观看免费的www| 国产亚洲欧洲精品| 久久w5ww成w人免费| 浮力影院亚洲国产第一页| 亚洲人成网站18禁止| 99久在线国内在线播放免费观看| 亚洲国产精品专区| 亚洲一区二区三区免费在线观看| 亚洲精品乱码久久久久久久久久久久| 日本一卡精品视频免费| 亚洲最大的成人网站| 久久精品亚洲男人的天堂| 日韩av无码久久精品免费| 国产成人va亚洲电影| 四虎国产精品免费视| 日韩免费在线视频|