3对情侣参加婚礼,3个新郎为A、B、C,3个新娘为X、Y、Z,有人想知道究竟谁与谁结婚,于是就问新人中的三位,得到如下结果:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人事后知道他们在开玩笑,说的全是假话。那么,究竟谁与谁结婚呢?
C语言代码:
/*第四天、婚礼上的谎言*/
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
/*将新娘进行分号,X,Y,Z分别是1,2,3 man_a = 1代表man_a迎娶的妻子是X*/
int man_a,man_b,man_c;
for(man_a = 1; man_a <= 3; man_a++) //枚举man_a的所有可能
for(man_b = 1; man_b <=3; man_b++) //枚举man_b的所有可能
for(man_c = 1; man_c <=3; man_c++) //枚举man_c的所有可能
{
/*man_a != 1代表A不嫁给X,并且他们娶的新娘不能是同一个人*/
if((man_a != 1) && (man_c != 1) && (man_c != 3) && (man_a != man_b) && (man_b != man_c) && (man_a != man_c))
{
printf("%c 将嫁给 A\n",'X'+ man_a - 1);
printf("%c 将嫁给 B\n",'X'+ man_b - 1);
printf("%c 将嫁给 C\n",'X'+ man_c - 1);
}
}
system("pause");
}
结果显示:
python3.4.4代码:
for man_a in range(1,4): #range(1,4)表示1~3
for man_b in range(1,4):
for man_c in range(1,4):
if((man_a != 1)&(man_c != 1)&(man_c != 3)&(man_a != man_b)&(man_b != man_c)&(man_a != man_c)):
print('%c 将嫁给 A\n'%(chr(ord('X') + man_a -1)))
print('%c 将嫁给 B\n'%(chr(ord('X') + man_b -1)))
print('%c 将嫁给 C\n'%(chr(ord('X') + man_c -1)))
#python中将字符串转换为ASCII码用函数ord(),反之用函数chr()
input() #防止一闪即逝,等待用户输入
结果显示: