簡體   English   中英

如何在python 2.7中輕松實現類似C的模(余數)操作

[英]How to easily implement C-like modulo (remainder) operation in python 2.7

負數的模運算符%在python和C中以不同的方式實現。在C中: -4 % 3 = -1 ,而在python中: -4 % 3 = 2

我知道如何在C中實現類似python的模。我想知道如何做到相反,也就是:在python中輕松實現類似C的模。

輕松地在python中實現類似C的模。

由於當整數被除時,C會向零截斷,因此余數的符號始終是第一個操作數的符號。 有幾種方法可以實現它; 選擇您喜歡的一個: def mod(a, b): return abs(a)%abs(b)*(1,-1)[a<0] def mod(a, b): return abs(a)%abs(b)*(1-2*(a<0))

如果結果為負,只需將modul加到結果中:

int mymod(int a, int b) {
   int res = a % b;
   if (res < 0)
      res += b;
   return res;
}

編輯:反之亦然:

def mymod(a, b):
    res = a % b
    if (a < 0):
        res -= b
    return res

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM