题目:三对新人参加婚礼,三位新郎A、B、C,三位新娘X、Y、Z。A说他将与X结婚,X说她将和C结婚,C说他将和Z结婚。他们都在说谎,求谁和谁结婚
Z将嫁给A
X将嫁给B
Y将嫁给C
思路:将“A说他将与X结婚,X说她将和C结婚,C说他将和Z结婚。他们都在说谎”表示成逻辑语句
(a!=0 && c!=2 && c!=0 && a!=b && b!=c && a!=c)
//这里将XYZ表示成0,1,2;他们加'A'也就是XYZ
//由于一一配对,所以有后面的三个式子
代码
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char** argv)
{
int a,b,c;
for(a=0;a<=2;a++)
for(b=0;b<2;b++)
for(c=0;c<=2;c++)
if(a!=0 && c!=2 && c!=0 && a!=b && b!=c && a!=c)
{
printf("%c将嫁给A\n",'X'+a);
printf("%c将嫁给B\n",'X'+b);
printf("%c将嫁给C\n",'X'+c);
}
system("pause");
return 0;
}