藍橋杯-扶老奶奶過街

題意:

  一共有5個紅領巾,編號分別爲A、B、C、D、E,老奶奶被他們其中一個扶過了馬路。

  五個紅領巾各自說話:

  A :我和E都沒有扶老奶奶

  B :老奶奶是被C和E其中一個扶過大街的

  C :老奶奶是被我和D其中一個扶過大街的

  D :B和C都沒有扶老奶奶過街

  E :我沒有扶老奶奶


  已知五個紅領巾中有且只有2個人說的是真話,請問是誰扶這老奶奶過了街?

  若有多個答案,在一行中輸出,編號之間用空格隔開。

 

思路:

for i=1 to 5 假設i號紅領巾扶了老奶奶過馬路,看每個人有沒有說真話,最後判斷說真話的人是不是2個。(這個模擬好新奇好有意思啊)。

 

代碼:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int sum=0;
    bool first=1;
    for(int i=1;i<=5;++i){
        sum=0;
        if(i!=1&&i!=5) ++sum;
        if(i==3||i==5) ++sum;
        if(i==3||i==4) ++sum;
        if(i!=2&&i!=3) ++sum;
        if(i!=5) ++sum;
        if(sum==2) {
            if(first) first=0; else cout<<" ";
            cout<<char('A'+i-1);
        }
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章