Quién es el asesino y el ranking de la competencia (lenguaje c)

escena:

        Ocurrió un homicidio en determinado lugar, la policía identificó a cuatro sospechosos a través de la investigación, uno de ellos debe ser el homicida.

A dijo: yo no

B dijo: si C

C dijo: Si D

D dijo: C está diciendo tonterías

        ¿Se sabe que una persona dice una mentira y tres dicen la verdad? ¿Quién es el asesino?

analizar:

        Cuando razonemos sobre esta pregunta, supondremos que A, B, C y D son los asesinos uno por uno, y luego juzgaremos que cumplen la condición de "una persona miente, tres verdades".

Suposición A Supuesto B Suposición C Suposición D
A ×
B × × ×
C × × ×
D ×

Según el análisis de la tabla anterior, se puede ver que C es el asesino.

Código:

int main()
{     asesino de caracteres = 0;     for (asesino = 'A'; asesino <= 'D'; asesino++)     {         if ((asesino != 'A') + (asesino == 'C') + (asesino == 'D') + (asesino! = 'D') == 3)         {             printf("%c\n", asesino);         }     }     devuelve 0; }









 Resumir:

        Considere la marca de verificación anterior y el signo incorrecto como 1 y 0. Así que juzgue directamente las tres marcas de verificación, 1+1+1+0 = 3. El resultado de la simulación es el mismo que el resultado del razonamiento.

 


escena:

        Cinco atletas participan en la competencia de clavados de plataforma de 10 metros, y sus predicciones son las siguientes:

A dijo: B segundo, yo tercero

B dijo: yo soy segundo, E es cuarto

C dijo: yo soy el primero, D es el segundo

D dijo: C último, soy tercero

E dijo: yo soy cuarto, A es primero

        Se sabe que cada jugador tiene solo la mitad de la razón, y la programación determina la clasificación del juego.

analizar:

        De acuerdo con el ejemplo del asesino anterior, se puede analizar que cada persona dijo dos condiciones. Hay uno correcto y otro incorrecto, es decir, un 0 y un 1. La clasificación de cada jugador puede ser del 1 al 5, así que haga una lista de todas las clasificaciones y juzgue si cumplen con la mitad de los requisitos.

Código:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	int d = 0;
	int e = 0;

	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 == 2) + (a == 3) == 1) && (((b == 2) + (e == 4)) == 1)
							&& (((c == 1) + (d == 2)) == 1) && (((c == 5) + (d == 3)) == 1)
							&& (((e == 4) + (a == 1)) == 1))
						{
							if(a*b*c*d*e == 120)
								printf("a = %d;b = %d;c = %d;d =%d;e = %d\n", a, b, c, d, e);
						}
					}
				}
			}
		}
	}
	return 0;
}

 Resumir:

        Haga una lista de todas las situaciones de pedido posibles y luego haga que satisfaga la condición final. La razón por la cual lo anterior es igual a 120 es que 1*2*3*4*5 = 120, para evitar que dos personas clasifiquen en el mismo lugar.

Supongo que te gusta

Origin blog.csdn.net/szl__lzs/article/details/121701293
Recomendado
Clasificación