關於求餘運算(餘數為正)

2021-10-06 03:09:51 字數 629 閱讀 3033

在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 的值。求模...