两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。
两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。
答案解析:
从题面上得知,每队为3人,则隐含条件为队内三人是不能比赛的,并且A一定不会和X比,C一定不会X和Z比;则我们不难写出判断条件:
如果A和X比 或者 C和X比 或者 C和Z比 或者 A和B比 或者 A和C比 或者 B和C比,都是不可以的;所以我们只要穷举A比赛对象,B比赛对象,C比赛对象,判断上述条件就可以了;
代码示例:
#include <stdio.h>
int main()
{
int A_battle, B_battle, C_battle;
//如果A对战的对象从“X”到“Z”
for (A_battle = 'X'; A_battle <= 'Z'; A_battle++)
{
//如果B对战的对象从“X”到“Z”
for (B_battle = 'X'; B_battle <= 'Z'; B_battle++)
{
//如果C对战的对象从“X”到“Z”
for (C_battle = 'X'; C_battle <= 'Z'; C_battle++)
{
//去除限制条件
if (A_battle == 'X' || C_battle == 'X' || C_battle == 'Z' || B_battle == A_battle || B_battle == C_battle || A_battle == C_battle)
{
continue;
}
printf("A对%c,B对%c,C对%c", A_battle, B_battle, C_battle);
}
}
}
return 0;
}