為什麼這篇python除法取餘數鄉民發文收入到精華區:因為在python除法取餘數這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者xavier13540 (柊 四千)看板C_and_CPP標題[問題] c/c++的整數除法和取...
c和c++的/和% 並不是常見的除法定義
例如下面這兩行
printf("5/3 = %d...%d\n", 5/3, 5%3);
printf("(-5)/3 = %d...%d\n", (-5)/3, (-5)%3);
會跑出
5/3 = 1...2
(-5)/3 = -1...-2
我實在是想不到在什麼情況下 需要讓我的餘數是負的
// 反觀python的//和% 定義就和數學上常用的定義一樣
請問當初究竟為什麼要把/和%定義成這樣?
我試著google過了 沒找到答案orz
--
小妹妹:「大哥哥~你說的魔法棒在哪裡呀~??」
大哥哥:「在這裡啊~!(掏出魔法棒)妳看妳看,牠會自己長大喔~」
小妹妹:「哇!!真的耶!用這個就可以長大嗎~?怎麼用啊~?」
大哥哥:「來!手給我,對對,就是擺在那裡,輕輕的上下移動...對對!就是這樣!」
小妹妹:「這樣嗎@.@?上下移動?好好玩喔~哈哈~又變大了耶~」
大哥哥:「對對!喔..喔..對了!等等會有魔法藥劑跑出來,要喝掉它才有效果喔~」
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.229.87
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1525195247.A.308.html
之前打英文關鍵字 也沒找到這篇orz
有看到其他人問 但回答都答非所問 例如叫大家小心c/c++的%不是數學上的餘數定義之類的
因為取trunc() 對程式語言的使用者來說 一點好處也沒有
就像我也可以引入一種新的取餘運算
定義除以某個正整數m的時候 餘數在m+7122到2m+7121之間
可是這種運算就是增加使用者的麻煩而已
c/c++只好規定 一個負整數除以正整數m 對商取trunc()而讓餘數介於-m+1到0之間?
聽起來不是沒有道理 但是我好失望QAQ
※ 編輯: xavier13540 (140.112.229.87), 05/02/2018 07:52:45