有人邀请ABCDEF六人参加一项会议,这六个人有些奇怪因为他们有很多要求

有人邀请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;
}


转载请注明出处!



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值