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 nintero positivo in mmodo che sia m % 7uguale 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)<<2con punteggio 6.4. Ho pensato che sarebbe stato difficile trovare un'espressione così fornita per cominciare.
table lookups