您的位置:首页 > 职场人生

【有趣的面试题】有人邀请ABCDEF六人参加一项会议

2013-03-03 14:00 645 查看
有人邀请ABCDEF六人参加一项会议,这六个人有些奇怪因为他们有很多要求,已知:

(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;
}




转载请注明出处!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息