Podana lista liczb całkowitych {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}. Dla tych, którzy są zainteresowani, te liczby są wykorzystywane w obliczeniach dnia tygodnia.
Dzień tygodnia = (m[n] + d + y + y>>2 + y/400 - y/100) % 7;, gdzie m[n]- szukam wyrażenia, d- dzień miesiąca, y- year - (month <= 2).
Skonstruuj wyrażenie składające się z operatorów arytmetycznych, logicznych i bitowych, które będą generować dodatnią liczbę ncałkowitą dodatnią, mtak aby była m % 7równa n-tej liczbie na liście.
Oddziały, operatory trójskładnikowe, wyszukiwanie tabel i wskaźniki są niedozwolone.
Ocena:
1 - dla | & ^ ~ >> <<operatorów
1,1 - dla + - < > <= >= == != ! && ||operatorów
1,2 - dla *operatora
1,4 - dla / %operatorów
Odpowiedź z najniższym wynikiem wygrywa.
Osobiście znalazłem:
(41*n)>>4+((n+61)>>4)<<2z wynikiem 6,4. Myślałem, że będzie to trudne do znalezienia, więc pod warunkiem własnego wyrażenia na początek.
table lookupsCiekawy frazowanie przypuszczam ...