對負數取餘的處理

2022-08-12 02:15:19 字數 530 閱讀 1562

**自:

在vc++中計算 -1%3 其結果是 -1 而不是 我所要的2

在格仔座標中,如果希望超過邊界的數從另一面回到視野中,取余是非常有用的作法:

原數-2

-10

1

2

34

取餘120

1201

-1÷3 = -1……2即 -3+2=-1

而由於vc++在取整的時候,預設是將小數部分捨去,所以 -1/3=-0.333…≈0 於是 餘數為

-1-0=-1

如果想要得到正整數的餘數怎麼辦?

solution by mutoo:

code:

// x%=n;  

x=(x%n+n)%n  

關於負數取餘的討論

關於負數的餘數,樓上很多已經闡述了純數學概念上的意義。我想從另乙個角度說說我的看法。先明確一點 我們討論的是 被除數 分子 是負整數,而除數 分母 是正整數的情況。先看乙個例子 17 mod 5 答案一 17 3 5 2 所以餘數是 2 答案二 17 4 5 3 所以餘數是 3 首先,從 純數學 概...

負數取餘 整除,Python和C語言的不同

總結一句 python中負數整除,是向負無窮取整,所以導致負數取餘不對 在數學公式中,兩種語言的表示演算法都是一樣的,都是 r a n a n 以上,r是餘數,a是被除數,n是除數。唯一不同點,就是商向0或負無窮方向取整的選擇,c從c99開始規定向0取整,python則規定向負無窮取整,選擇而已。向...

Python 關於整除以及負數取餘遇到的問題

最近在編碼的過程中,在整除以及取餘的時候遇到了一些比較迷的問題,這裡碼一下這些問題,以備日後檢視。在python3中,除法有 以及 兩種,這兩個有著明顯的區別,具體區別看 print 12 10 print 12 10 這兩行 的輸出如下 1 1.2這結果的差別顯而易見。當被除數是負數的時候又是令一...