给定的整数列表{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。我认为很难找到这样提供的表达方式。
我猜也不允许数组解引用(和亲属)?
—
John Dvorak 2014年
哦,是的,当然,我已经编辑了问题。
—
Somnium
某些动机将大大改善这个问题。这些数字从哪里来?
—
彼得·泰勒
table lookups
有趣的措辞,我想...