c语言:2种方法:5位运动员参加跳水比赛,每位选手都说对一半,请肯定比赛名次

2021年09月15日 阅读数:1
这篇文章主要向大家介绍c语言:2种方法:5位运动员参加跳水比赛,每位选手都说对一半,请肯定比赛名次,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果c++

A选手说:B第一,我第三。编程

B选手说:我第二,E第四。ide

C选手说:我第一,D第二。spa

D选手说:C最后,我第三。it

E选手说:我第四,A第一。io

比赛结束后,每位选手都说对了一半,请编程肯定比赛的名次。class

程序一:二进制

#include<stdio.h>程序

int main()di

{

int a = 1, b = 1,c = 1,d=1,e=1;

for (a = 1; a <= 5; a++)

{

for (b = 1; b <= 5; b++)

{

for (c = 1; c <= 5; c++)

{

for (d = 1; d <= 5; d++)

{

for (e = 1; e <= 5; e++)

{

if ((b == 1) + (a == 3) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1)

{

printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d\n",a,b,c,d,e);

return 0;

}

}

}

}

}

}

return 1;

}

程序二:

#include<stdio.h>

int main()

{

int a = 1, b = 1, c = 1, d = 1, e = 1;

for (a = 1; a <= 5; a++)

{

for (b = 1; b <= 5; b++)

{

for (c = 1; c <= 5; c++)

{

for (d = 1; d <= 5; d++)

{

for (e = 1; e <= 5; e++)

{

if ((b == 1) + (a == 3) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1)

{

int num = 0;

num |= (1 << (a - 1));//二进制连续置为1,11111分别表示1,2,3,4,5之间的数能够连续存放

num |= (1 << (b - 1));

num |= (1 << (c - 1));

num |= (1 << (d - 1));

num |= (1 << (e - 1));

while (num)

{

if (num % 2 == 0)//二进制中的1是连续的,不能被2整除,若是能整除,说明二进制中有0

{

break;

}

num = num / 2;

}

if (num == 0)

{

printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d\n", a, b, c, d, e);

}

}

}

}

}

}

}

return 0;

}

结果:

a=2

b=1

c=1

d=3

e=4

请按任意键继续. . .