Elenco di numeri interi {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}
. Per coloro che sono interessati questi numeri vengono utilizzati nel calcolo dei giorni feriali.
Weekday = (m[n] + d + y + y>>2 + y/400 - y/100) % 7;
, dove m[n]
- espressione che sto cercando, d
- giorno del mese, y
- year - (month <= 2)
.
Costruisci un'espressione composta da operatori aritmetici, logici e bit per bit, che produrrà un numero n
intero positivo in m
modo che sia m % 7
uguale all'n-esimo numero nell'elenco.
Non sono consentiti rami, operatori ternari, ricerche di tabella e puntatori.
Punteggio:
1 - per gli | & ^ ~ >> <<
operatori
1.1 - per gli + - < > <= >= == != ! && ||
operatori
1.2 - per gli *
operatori
1.4 - per gli / %
operatori
Rispondi con il punteggio più basso vince.
Personalmente ho trovato:
(41*n)>>4+((n+61)>>4)<<2
con punteggio 6.4. Ho pensato che sarebbe stato difficile trovare un'espressione così fornita per cominciare.
table lookups