雖然不是最好,但能解決問題,程序也不長:
#include?<iostream>
using?namespace?std;
int?main()
{
char?name[6]={'A','B','C','D','E','F'};
int?i,value[6];
for(value[0]=0;value[0]<2;value[0]++)
for(value[1]=0;value[1]<2;value[1]++)for(value[2]=0;value[2]<2;value[2]++)
for(value[3]=0;value[3]<2;value[3]++)
for(value[4]=0;value[4]<2;value[4]++)for(value[5]=0;value[5]<2;value[5]++)
{ if((value[0]+value[1])?//A和B二人中至少去壹人; &&(value[0]+value[3]<2)?//A和D不能都去;? &&(value[0]+value[4]+value[5]>=2)?//A,E和F三人中至少去二人; &&(value[1]==value[2])?//B和C都去或者都不去;&&(value[2]+value[3]==1)?//C和D兩人中去壹個;
&&(value[3]>=value[4]))?//若D不去,則E也不去。等價於“若E去則D就去”。for(i=0;i<6;i++)
{
if(value[i]) cout<<name[i]<<"參加!"<<endl; else cout<<name[i]<<"不參加!"<<endl;}
}? return?0;}