今天看書發現python與C的負數取餘運算結果不一樣,查資料理解.python
取餘運算的算法是相同的 r = a- n*(a/n) n!=0算法
r是餘數,a是被除數,n是除數.n不能爲0,不然都會報錯.spa
負數取餘運算的區別在於除法的取整方向不一樣,C語言從C99開始規定向0取整,python規定向負無窮取整.code
python a%n的符號與n相同 -11//4 #值爲-3 -11%4 -> (-11) -4*(-11//4) =1 #值爲1
C語言 a%n的符號與a相同 -11/4 //值爲-2 -11%4 (-11) - 4*(-11/4) =-3 //值爲-3