Liste donnée d'entiers {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}
. Pour ceux qui sont intéressés, ces chiffres sont utilisés dans le calcul en semaine.
Jour de la semaine = (m[n] + d + y + y>>2 + y/400 - y/100) % 7;
, où m[n]
- expression que je recherche, d
- jour du mois, y
- year - (month <= 2)
.
Construisez une expression composée d'opérateurs arithmétiques, logiques et au niveau du bit, qui sortiront pour un entier n
positif de m
façon à ce qu'il m % 7
soit le nième nombre dans la liste.
Les branches, les opérateurs ternaires, les recherches de table et les pointeurs ne sont pas autorisés.
Note:
1 - pour les | & ^ ~ >> <<
opérateurs
1.1 - pour les + - < > <= >= == != ! && ||
opérateurs
1.2 - pour l' *
opérateur
1.4 - pour les / %
opérateurs
Répondez avec le score le plus bas.
Personnellement, j'ai trouvé:
(41*n)>>4+((n+61)>>4)<<2
avec un score de 6,4. Je pensais que ce serait difficile à trouver, à condition de disposer de sa propre expression pour commencer.
table lookups