整除運算與取模運算

2021-07-12 02:45:56 字數 1284 閱讀 8675

凡是呈現明顯週期性的,比如十二生肖(以十二為週期),比如星期(以 7 為週期),比如天乾(以 10 為週期),比如地支(以 12 為週期),最佳的解決方案就是取模(或者簡單地說對該週期取餘數)。

在 c語言的環境下,將乙個整數對 2 不斷地做整除:

也即除了 0/1 之外的任何正整數,不論是奇數還是偶數,不斷地對 2 整除的最終結果都會是 1;

15/2 = 7 /2 = 3 /2 =1

如果乙個數(二進位制形式 n 位)對 2k

整除和取模:

不妨以 10(1010) 和 8(1000) 為例:[0

,5)5

⇒0[5

,10)5

⇒1⋮[

5n,5

n+1)

5⇒n

x%5⇒

[0,5

)/0,

1,2,

3,4x

%n⇒[

0,n)

/0,1

,2,…

,n−1

10%7

=3就以今天 2016 年 6 月 22 為星期三,一周也即 7 天後的仍是星期三,則10天後是星期六,10 對 7 取模的含義正在與,獲取餘數,3(星期三)+3(餘數3) = 6。

計算星期幾,不可避免地要同 7 的取模運算掛上聯絡。

2016 年的元旦是星期 5,則 2017 年元旦是星期星期日(5+2=7),2023年是閏年。

我們繼續公升級這一問題,計算任意一天的一年後的這一天是星期幾。這道題目比計算元旦稍微複雜的是,需要判斷這一天到一年後的今天所跨越的 2 月是有 28 天還是 29 天,而不直接取決當年是否是閏年。

以 2016 年 6 月 22 日為例,這一天是星期三,則一年後的今天,即 2017 年 6 月 22 是星期幾?

從 2016 年 6 月 22 到 2017 年 6 月 22 中間經歷的 2 月,是 2017 年的二月,28天,也即從 2023年 6 月 22 到 2017 年 6 月22,所經歷的一年是 365 天。

則 2017 年 6 月 22 是 星期 4 (3 + 1).

查閱萬年曆可知:1900 年是鼠年,2000 年是龍年,

比如我們要計算 1987 年的屬相,87 % 12 = 3,鼠年之後的第四年,那就是 4 兔。

比如我們要獲得 2016 年的屬相,16 % 12 = 4,龍年之後的第四年,那就是 4+5 = 9 猴年。

乙個數對 a 取模,所得的結果要小於 a,取模相當於除法運算的求餘,餘數自然小於除數;

Python的整除和取模運算

1 模運算的計算原理是這樣的 假設想求的a x y,a的值是通過如下公式算出來的 a x x y y,且除法是按照整數除法來運算的,所以將你的數字代入公式 17 10 17 17 10 10 17 2 10 3.產生這個結果的關鍵在於程式的取模公式,保證了y是正數,模運算的結果就是 0,y y是負數...

python模運算求餘 取模運算和取餘運算

取模運算和取餘運算 取模運算 modulo operation 和取餘運算 complementation 兩個概念有重疊的部分但又不完全一致。主要的區別在於對負整數進行除法運算時操作不同。取模主要是用於 計算機術語中。取餘則更多是數學概念。模運算在數論和程式設計中 都有著廣泛的應用,從奇偶數的判別...

辨析取模運算與取餘運算

通常情況下,取模運算 mod 和取餘運算 rem 被混為一談,因為在大多數的程式語言裡,都用 符號來表示取模運算或者取餘運算。所以有必要編寫本文件,來為在此環節遇到問題的程式設計師理清思路,同時也提醒各位需要注意在不同程式語言環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。...