/*某参观团按以下条件限制从A、B、C、D、E五个地方中选若干参观点:
1)如去A,则必须去B;
2)D、E两地只能去一地;
3)B、C两地只能去一地;
4)C、D两地都去或都不去;
5)若去E地,A、D也必去。
问该团最多能去哪几个地方?
*/
#include"stdio.h" #include"stdlib.h" #include"time.h" int main() {int a,b,c,d,e; int x[5]; for(a=0;a<2;a++) for(b=0;b<2;b++) for(c=0;c<2;c++) for(d=0;d<2;d++) for(e=0;e<2;e++) {//五个if分别对应五个条件 if(a&&b||(a==0&&b==0)) if(d+e<2) if(b+c<2) if(c&&d) if(e&&a&&d||(e==0)) {x[0]=a; x[1]=b; x[2]=c;x[3]=d;x[4]=e; for(int i=0;i<5;i++) if(x[i]) printf("%c will be arrived\n",'A'+i); }} printf("\n"); system("pause"); }
//当然也可以只用用x[0]~x[4],这里用a,b,c,d,e只为直观和方便