題意:
一共有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;
}