Lista dada de enteros {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}. Para aquellos interesados, estos números se utilizan en el cálculo de los días laborables.
Día de la semana = (m[n] + d + y + y>>2 + y/400 - y/100) % 7;, donde m[n]- expresión que estoy buscando, d- día del mes, y- year - (month <= 2).
Construya una expresión que conste de operadores aritméticos, lógicos y bit a bit, que generarán un número nentero positivo mpara que sea m % 7igual al n-ésimo número en la lista.
No se permiten ramas, operadores ternarios, búsquedas de tablas y punteros.
Puntuación:
1 - para | & ^ ~ >> <<operadores
1.1 - para + - < > <= >= == != ! && ||operadores
1.2 - para *operadores
1.4 - para / %operadores
Responda con la puntuación más baja gana.
Personalmente he encontrado:
(41*n)>>4+((n+61)>>4)<<2con puntaje 6.4. Pensé que esto sería difícil de encontrar, así que proporcioné una expresión propia para comenzar.
table lookupsRedacción interesante supongo ...