Skip to main content
 首页 » 编程设计

python之使用异或 (Python) 的 4 的倍数

2025年05月04日8myhome

在不使用 +、-、* 和 % 运算符的情况下检查数字是否为 4 的倍数。

def multipleFour(n): 
   if n == 1: 
     return False 
   XOR = 0 
   for i in range(n): 
        XOR = XOR ^ 1 
   return XOR == n 
multipleFour(20) 

我的答案返回 False

请您参考如下方法:

您在for 循环 和xor 语句 中弄错了。应该是这样的——

def multipleFour(n): 
   if n == 1: 
     return False 
   XOR = 0 
   for i in range(1, n+1): 
        XOR = XOR ^ i 
   return XOR == n 
multipleFour(20) 

即你的循环必须运行 i=1 到 i=n 而不是 i=0 到 i=n-1。而且必须是xor = xor ^ i

编辑:

评论中指出,for i in range(1, n+1)不满足不使用+的条件,但稍作修改,这个事情可以解决为-

def multipleFour(n): 
       if n == 1: 
         return False 
       XOR = n 
       for i in range(1, n): 
            XOR = XOR ^ i 
       return XOR == n 
    multipleFour(20)