我遇到一个有趣的问题,我想讨论它,以便了解不同的人如何接触它:
让n
为自然数,任务是实现函数f
,以便
f(n) = n + 1 if 2 divides n
f(n) = n - 1 if 2 does not divide n
条件:实现不得使用条件结构
我的回答是f(n) = n xor 1
答案 0 :(得分:1)
你可以这样做:
f(n) = n + 1 - 2 * (n % 2)
因为
(n % 2) == 0
如果2除以n
,因此f(n) = n + 1 - 0
和
(n % 2) == 1
如果2未划分n
,因此f(n) = n + 1 - 2 = n - 1