在c語言中,如果被除數為負值,則對乙個正數求餘的時候,求出的餘數也是乙個負數。在某些場合下,我們需要求出它的正餘數,例如:在c語言中有(-11)%5=-1,但是如果我們希望得到的餘數不是-1,而是4,那麼如何計算呢?
對於整型數a,b來說,取模運算或者求餘運算的方法都是:
1.求 整數商: c = a/b;
2.計算模或者餘數: r = a - c*b.
求模運算和求餘運算在第一步不同: 取餘運算在取c的值時,向0 方向捨入;而取模運算在計算c的值時,向負無窮方向捨入。
所謂向0方向捨入,就是以小數點為界限,直接將小數部分去掉。如(int)-1.324=-1(亦叫截斷法);
而向負無窮方向捨入,就是最終結果比真實值更小。如(int)-1.324=-2;(int此處是強制轉換資料型別)
此處參考 :
以下是**實現 :
注意:變數一定要先定義後使用 在#include int main()
printf("remainder = %d \n",remainder);
return 0;
}
remainder = a%b;
之前其中a與b都必須提前賦值 求餘數(同餘定理)
現在給你乙個自然數n,它的位數小於等於一百萬,現在你要做的就是求出這個數除10003之後的餘數 輸入第一行有乙個整數m 1 m 8 表示有m組測試資料 隨後m行每行有乙個自然數n。輸出輸出n整除10003之後的餘數,每次輸出佔一行。樣例輸入34 5465456541 樣例輸出45 如下 同餘定理 a...
求餘數(同餘定理)
現在給你乙個自然數n,它的位數小於等於一百萬,現在你要做的就是求出這個數除10003之後的餘數 輸入第一行有乙個整數m 1 m 8 表示有m組測試資料 隨後m行每行有乙個自然數n。輸出輸出n整除10003之後的餘數,每次輸出佔一行。樣例輸入34 5465456541 樣例輸出45 如下 同餘定理 a...
關於求模與求餘
我覺得很多人搞不清楚這兩個概念的區別,剛好在翻譯lua手冊時遇到 與math.fmod這兩個操作,順便做一下說明吧。求模與求餘的區別。假設對a與b兩個 整數做求模或求餘操作。那麼第一步是先求整數商c,即 a b 的值,第二步是計算模或餘數 a c b 求模與求餘的區別在於怎麼處理 a b 的值。求模...