Дано список цілих чисел {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}. Для тих, хто цікавиться, ці цифри використовуються в розрахунку на будні дні.
Будній день = (m[n] + d + y + y>>2 + y/400 - y/100) % 7;, де m[n]- вираз, який я шукаю, d- день місяця, y- year - (month <= 2).
Побудуйте вираз, що складається з арифметичних, логічних та порозрядних операторів, який виведе для додатного цілого nчисла mтак, що m % 7дорівнює n-му номеру у списку.
Гілки, потрійні оператори, пошук таблиць і покажчики не дозволяються.
Оцінка:
1 - для | & ^ ~ >> <<операторів
1,1 - для + - < > <= >= == != ! && ||операторів
1,2 - для *оператора
1,4 - для / %операторів
Відповідь з найнижчою кількістю перемог
Особисто я знайшов:
(41*n)>>4+((n+61)>>4)<<2з оцінкою 6,4. Я подумав, що це буде важко знайти настільки забезпечене власне вираження для початку.
table lookupsЯ думаю, що цікаві фрази ...