有人邀请ABCDEF六人参加一项会议,这六个人有些奇怪因为他们有很多要求,已知:
(1)AB两人至少有一人参加会议
(2)AEF三人中有两人参加会议
(3)B和C两人一致决定要么两人都去,要么两人都不去。
(4)AD两人中只有一人参加会议
(5)CD两人中也只有一人参加会议
(6)如果D不去,那么E也决定不去
(1)AB两人至少有一人参加会议
(2)AEF三人中有两人参加会议
(3)B和C两人一致决定要么两人都去,要么两人都不去。
(4)AD两人中只有一人参加会议
(5)CD两人中也只有一人参加会议
(6)如果D不去,那么E也决定不去
那么最后究竟有几个人参加会议?
#include <iostream>
#include <map>
using namespace std;
void main()
{
map<char,int>Person;
Person['A']=0;Person['B']=0;Person['C']=0;Person['D']=0;Person['E']=0;Person['F']=0;
cout<<"参加会议的人有 :"<<endl<<endl;
for(Person['A']=0;Person['A']<2;Person['A']++)
for(Person['B']=0;Person['B']<2;Person['B']++)
for(Person['C']=0;Person['C']<2;Person['C']++)
for(Person['D']=0;Person['D']<2;Person['D']++)
for(Person['E']=0;Person['E']<2;Person['E']++)
for(Person['F']=0;Person['F']<2;Person['F']++)
{
//1 :AB至少一人去 A!B !AB AB
if( Person['A'] || Person['B'] )
{
//2 :AEF只有两人去
if((Person['A']&&Person['E'] && !Person['F'])||(Person['A']&&Person['F']&&!Person['E'])||(Person['E']&&Person['F']&&!Person['A']))
{
//3 : BC要么都去,要么都不去
if( (Person['B'] && Person['C']) || (!Person['B'] && !Person['C']))
{
//4 :AD只有一人参加会议
if( (Person['A'] ^ Person['D']) )
{
//5 :CD只有一人参加会议
if( (Person['C'] ^ Person['D']) )
{
//6 : 如果D不去,E也决定不去 DE D!E !D!E
if( (Person['D'] && Person['E']) || (Person['D'] && !Person['E']) || (!Person['D'] && !Person['E']) )
{
int n=0;
if((Person['A'])) {n++;cout<<"A"<<" ";}
if((Person['B'])) {n++;cout<<"B"<<" ";}
if((Person['C'])) {n++;cout<<"C"<<" ";}
if((Person['D'])) {n++;cout<<"D"<<" ";}
if((Person['E'])) {n++;cout<<"E"<<" ";}
if((Person['F'])) {n++;cout<<"F"<<" "<<endl<<"共有"<<n<<"个人参加会议!"<<endl;}
}
}
}
}
}
}
}
cout<<endl;
}
转载请注明出处!