Дан список целых чисел {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}
. Для тех, кто заинтересован, эти цифры используются при расчете дня недели.
Weekday = (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
Интересно фразировка я полагаю ...