给定的整数列表{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有趣的措辞,我想...