posts - 4,  comments - 0,  trackbacks - 0
          題目來源:古老的智力題
          請回答下面10個問題,你的回答應保證每題惟有你的選擇是正確的。
          (1)第一個答案是b的問題是哪一個?
          (a) 2    (b) 3    (c) 4    (d) 5    (e) 6
          (2)恰好有兩個連續問題的答案是一樣的,它們是:
          (a) 2,3    (b) 3,4    (c) 4,5    (d) 5,6    (e) 6,7
          (3)本問題答案和哪一個問題的答案相同?
          (a) 1    (b) 2    (c) 4    (d) 7    (e) 6
          (4)答案是a的問題的個數是:
          (a) 0    (b) 1    (c) 2    (d) 3    (e) 4
          (5)本問題答案和哪一個問題的答案相同?
          (a) 10    (b) 9    (c) 8    (d) 7    (e) 6
          (6)答案是a的問題的個數和答案是什么的問題的個數相同?
          (a) b    (b) c    (c) d    (d) e    (e) 以上都不是
          (7) 按照字母順序,本問題的答案和下一個問題的答案相差幾個字母?
          (a) 4    (b) 3    (c) 2    (d) 1    (e) 0    (注:a和b相差一個字母)
          (8)答案是元音字母的問題的個數是:
          (a) 2    (b) 3    (c) 4    (d) 5    (e) 6    (注:a和e是元音字母)
          (9)答案是輔音字母的問題的個數是:
          (a) 一個質數 (b) 一個階乘數 (c) 一個平方數 (d) 一個立方數 (e) 5的倍數
          (10)本問題的答案是:
          (a) a    (b) b    (c) c    (d) d    (e) e

          很早之前貌似在一本數學趣味書上看過...當時沒能推出來...今天突然發現黑書上竟然也有這道題...為了好奇心...寫了個程序跑了一下...
          可能有一些值得注意或者有歧義的地方,標注一下:
          (1)題目要求“你的回答應保證每題惟有你的選擇是正確的”,我的理解是在某一個固定的答案下,不能有某題是兩個答案都符合的。
              比如第二題,不能2,3,4都同一個答案。這樣的話第二題既能選a又能選b,不符合題意。(如果不按這種理解的話會跑出很多個答案來...)
          (2)第七題中的“相差”一開始理解錯了...以為是a和b相差1,b和a就相差-1...于是第八題就選e了...最后發現這樣跑不出來...就修改了理解...
              應該是比如選c,那么與c相差兩個字母的可以是a或者e...

          最后跑出來的答案是:c d e b e e d c b a
          目測好像是對的...

          代碼如下:
            1#include<cstdio>
            2int i[11];
            3bool judge1()
            4{
            5    if(i[1]==1&&i[2]==2)    return 1;
            6    if(i[1]==2&&i[3]==2&&i[2]!=2)    return 1;
            7    if(i[1]==3&&i[4]==2&&i[2]!=2&&i[3]!=2)    return 1;
            8    if(i[1]==4&&i[5]==2&&i[2]!=2&&i[3]!=2&&i[4]!=2)    
            9        return 1;
           10    if(i[1]==5&&i[6]==2&&i[2]!=2&&i[3]!=2&&i[4]!=2&&i[5]!=2)    
           11        return 1;
           12    return 0;
           13}

           14
           15bool judge2()
           16{
           17    bool flag;int k,j;
           18    for(j=1;j<=5;j++)
           19        if(i[2]==j&&i[j+1]==i[j+2]){
           20            for(k=2,flag=1;k<=6;k++){
           21                if(k==j+1)    continue;
           22                if(i[k]==i[k+1]){flag=0;break;}
           23            }

           24            if(flag)    return 1;
           25        }

           26    return 0;
           27}

           28
           29bool judge3()
           30{
           31    if(i[3]==1&&i[3]==i[1])    return 1;
           32    if(i[3]==2&&i[3]==i[2])    return 1;
           33    if(i[3]==3&&i[3]==i[4])    return 1;
           34    if(i[3]==4&&i[3]==i[7])    return 1;
           35    if(i[3]==5&&i[3]==i[6])    return 1;
           36    return 0;
           37}

           38
           39bool judge4()
           40{
           41    int cnt=0,k,j;
           42    for(j=1;j<=10;j++)
           43        if(i[j]==1)
           44            cnt++;
           45    for(k=1;k<=5;k++)
           46        if(i[4]==k&&cnt==k-1)
           47            return 1;
           48    return 0;
           49}

           50
           51bool judge5()
           52{
           53    for(int j=1;j<=5;j++)
           54        if(i[5]==j&&i[5]==i[11-j])
           55            return 1;
           56    return 0;
           57}

           58
           59bool judge6()
           60{
           61    int cnt[6]={0},k,j;bool flag;
           62    for(j=1;j<=10;j++)    cnt[i[j]]++;
           63    for(j=1;j<=4;j++){
           64        if(i[6]==j&&cnt[1]==cnt[1+j]){
           65            for(k=2,flag=1;k<=5;k++){
           66                if(k==1+j)    continue;
           67                if(cnt[1]==cnt[k]){flag=0;break;}
           68            }

           69            if(flag)    return 1;
           70        }

           71    }

           72    if(i[6]==5&&cnt[1]!=cnt[2]&&cnt[1]!=cnt[3]
           73    &&cnt[1]!=cnt[4]&&cnt[1]!=cnt[5])    
           74        return 1;
           75    return 0;
           76}

           77
           78bool judge7()
           79{
           80    if(i[7]==1&&i[8]==5)    return 1;
           81    if(i[7]==2&&i[8]==5)    return 1;
           82    if(i[7]==3&&(i[8]==1||i[8]==5))    return 1;
           83    if(i[7]==4&&(i[8]==3||i[8]==5))    return 1;
           84    if(i[7]==5&&i[8]==5)    return 1;
           85    return 0;
           86}

           87
           88bool judge8()
           89{
           90    int vowel=0,j;
           91    for(j=1;j<=10;j++)
           92        if(i[j]==1||i[j]==5)
           93            vowel++;
           94    for(j=1;j<=5;j++)
           95        if(i[8]==j&&(vowel==j+1))    
           96            return 1;
           97    return 0;
           98}

           99
          100bool judge9()
          101{
          102    int csnt=0,j;
          103    for(j=1;j<=10;j++)
          104        if(i[j]==2||i[j]==3||i[j]==4)
          105            csnt++;
          106    if(i[9]==1&&(csnt==2||csnt==3||csnt==5||csnt==7))    
          107        return 1;
          108    if(i[9]==2&&(csnt==1||csnt==2||csnt==6))    
          109        return 1;
          110    if(i[9]==3&&(csnt==0||csnt==1||csnt==4||csnt==9))    
          111        return 1;
          112    if(i[9]==4&&(csnt==0||csnt==1||csnt==8))    
          113        return 1;
          114    if(i[9]==5&&(csnt%5==0))    return 1;
          115    return 0;
          116}

          117
          118void print()
          119{
          120    for(int j=1;j<=10;j++)
          121        printf("%c ",i[j]+'a'-1);
          122    puts("");
          123}

          124
          125int main()
          126{
          127    for(i[1]=1;i[1]<=5;i[1]++)
          128    for(i[2]=1;i[2]<=5;i[2]++)
          129    for(i[3]=1;i[3]<=5;i[3]++)
          130    for(i[4]=1;i[4]<=5;i[4]++)
          131    for(i[5]=1;i[5]<=5;i[5]++)
          132    for(i[6]=1;i[6]<=5;i[6]++)
          133    for(i[7]=1;i[7]<=5;i[7]++)
          134    for(i[8]=1;i[8]<=5;i[8]++)
          135    for(i[9]=1;i[9]<=5;i[9]++)
          136    for(i[10]=1;i[10]<=5;i[10]++)
          137    if(judge1()&&judge2()&&judge3()&&judge4()&&judge5()&&judge6()&&judge7()&&judge8()&&judge9())
          138        print();
          139    return 0;
          140}
          posted on 2012-01-19 19:59 NKU->lkjslkjdlk 閱讀(219) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 广饶县| 吉林市| 伊春市| 民县| 东港市| 宣化县| 武冈市| 泊头市| 神农架林区| 讷河市| 全州县| 稻城县| 鲜城| 龙井市| 宣汉县| 普兰县| 澄江县| 石屏县| 岳阳县| 湖南省| 涡阳县| 锡林郭勒盟| 西吉县| 大荔县| 卢氏县| 赞皇县| 晴隆县| 诸暨市| 丹凤县| 茂名市| 明溪县| 马龙县| 开原市| 琼海市| 阳原县| 灯塔市| 浏阳市| 修文县| 凤冈县| 中卫市| 宜兰市|