ACM演算法 數學問題篇 運算子

2021-10-02 19:56:13 字數 754 閱讀 6696

% 運算子的簡介

定義:通俗地講即求乙個數被另乙個數除後剩餘的餘數。

區分:除、除以

a 除以 b => a / b,表示 a 被 b 除了,即 a 是被除數,b是除數。

a 除 b => b / a,表示用 a 去除 b,這是被動關係,即 b 是被除數,a 是除數。

若 a % b 其中要求 a 和 b 必須為整形變數 ,例如 :int short 等;而不能是浮點數。且變數 b 必須為非零數。否則會出現模零錯誤。

符號問題, a % b 的結果只與 a 的符號有關,與 b 的無關。即 a % b 與 a % -b 的結果是一樣的。若 a 為正整數,則結果為正數,若 a 為負整數,則結果為負數。

數論中的餘數定義:範圍為 [0 ~ b-1] ,但是取餘運算子,只能保證 a % b 的結果的絕對值在上述範圍內,而不能保證不出現負數,所以根據取模的特性,我們只需要在 a % b 的結果上在加乙個除數,意思就是( a % b + b ) % b,這樣因為 b % b 為0,對結果無影響。

綜上:個人覺得,數論中的餘數與計算機中的 % 運算子不是乙個概念,但是如果計算機想要實現求餘數的操作,只能通過 % 運算子來操作,至於正負號就要後期修正,這就和用算術平方根來算開方一樣,都是後期符號需要修正。

取餘運算的公式:(這種公式可以算大數求模,防止溢位)

ACM演算法 數學問題篇 高精度整數

第一題 思路 對於高精度整數問題,其實很簡單,就是相當於模板函式。只要背住,就沒問題了,具體思路就是用乙個 int 型陣列來存,每四位一存。但注意,用size表示大小的時候,size是從0開始自增的,size表示現在最高可以使用的空白陣列位。如下 include include struct big...

ACM學習筆記之 數學問題 素數

素數是非常簡單的乙個概念,所謂素數,是指恰好有2個約數 的整數,那麼這兩個數就是它本身和1。素數的判定方法有這麼幾種,1 簡單判定,2 飛馬測試 3 r 演算法 4 數域篩法 5 埃式篩法 6 區間篩法 那麼先從最簡單的判素方法學起 1.素性測試 給定整數n,請判斷n是不是素數 includeboo...

ACM選修課1 數學問題

memset 函式 memset 陣列名,1 0 1,sizeof a 重置為1是陣列為任意正數 求乙個數的位數 int log10 n 1,公式log10 i i 必須為double型別 the hardest problem ever include using namespace std in...