給你乙個正整數n,判斷n能否被3、5、8、11中的乙個或多個數整除。(n<1e50)
由於正整數過大,因此n用字串進行儲存,只要判斷(n%3,5,8,11)是否等於0,也就是課上講的大數取模,利用大數取模來進行判斷即可。
乙個數字abc%k
可以拆解為(((a*10)+b)*10+c)%k,根據乘法取模的性質,將取模運算子分配即可得到結果。
上板子
ll bigintmod(string a, ll mod)
return sum;
}
給你乙個二進位制數字,輸出它在十進位制下對1000000007取模的結果。
用字串存這個數字,對於數字1010,可以分解為 ((((1*2)+0)*2+1)*2+0),同上題的大數取模思想,讀者請觸類旁通。
輸入三個18進製的數a,b,c,求其乘積
將其轉化成10進製進行乘法運算,再將其轉換為18進製輸出即可。
// 把m進製的a轉為10進製
ll convert_10(ll m, string a)
return sum;
}// 把十進位制的num轉成m進製
void convert_m(ll num, ll m)
for (int i = x - 1; i >= 0; i--)
cout << endl;
}
板子題目
給你乙個二進位制或十六進製制的數字,請你完成他們之間的轉換。
上述規則理解了之後就可以進行**的處理了,首先判斷是2進製還是16進製制,簡單迴圈判斷即可。
二進位制:
首先判斷2進製的位數,如果不是4的倍速就在前面新增前導0
while (s.length() % 4 != 0)s = '0' + s;
對每4位進行2進製轉10進製的處理,得到數字t。如果數字t<=9,直接輸出,否則的話輸出char(t-10+'a')。
十六進製制:
16進製制轉化成10進製,然後10進製轉化成2進製。16進製制轉10進製:如果對應char<='9',對應的十進位制t=char-'0',反之,t=ch-'a'+10
10進製轉2進製直接套板子,轉化成的二進位制一定要4位,打個比方,比如11,要對其補前導0,變為0011。最後將我們的二進位制依次儲存到我們的ans字串之中,最後要清除ans的前導0即可。
輸出數字在計算機中的儲存形式,每8位用乙個空格隔開,最後換行
位運算題,我們將二進位制裡每一位數儲存到陣列裡,然後倒序輸出即可。
for (int i = 1; i <= 32; i++)
** 對(x&1)的解釋**:乙個數字的末尾如果是1,那麼其數字&1為1,反之數字&1為0,我們不斷對其進行&1運算,然後在右移執行32次,每次存到陣列r裡面,最後倒序輸出即可。
這題的話,用大數字取模運算+慢速乘,唯一要注意的地方是,大數取模之中,(ans*10)這一塊也要慢速乘,因為ans的取值範圍和mod一樣,而mod<=1e18,因此進行*10的操作會炸long long。
慢速乘板子:
ll mul(ll a, ll b,ll mod)
a = (a << 1) % mod;
b >>= 1;
} return ans;
}
計算 a 的 b 次方對 1e9+7 取模以後的結果,(1 <= a,b <= 1e100)
大數字取模+快速冪運算
根據費馬小定理
mod為素數時,\(a^b\%mod=a^\%mod\)對於a我們也進行大數取模的化簡,最後將結果用快速冪求得即可。
乙個數列,正整數,沒有存在0的數字,現在求這個數列的第x項是多少。
實際上這題是9進製儲存的變式,通常來說我們轉化成其9進製即可。
唯一特別的地方就是,每一位的進製儲存範圍是從傳統9進製的[0,8],變式為[1,9]的 。我們仔細觀察,在我們對10進製的數字迴圈迭代的時候,0是如何出現的?,當我們數字x%9=0的時候,傳統9進製對應的位數就是0,但是本題每一位範圍的是[1,9],因當x%9=0的時候,我們將其化成(x-1)%9+1,就能改變其的取值範圍了
while (x)
else//正常操作
}
LeetCode第4題C語言題解
description there are two sorted arraysnums1andnums2of size m and n respectively.find the median of the two sorted arrays.the overall run time complex...
題解搬運 藍橋杯2023年第4題題解
從我原來的部落格上搬運。原先blog作廢。脫氧核糖核酸即常說的dna,是一類帶有遺傳資訊的生物大分子。它由4種主要的脫氧核苷酸 damp dgmp dcmt和dtmp 通過磷酸二酯鍵連線而成。這4種核苷酸可以分別記為 a g c t。dna攜帶的遺傳資訊可以用形如 aggtcgactcca 的串來表...
網路流24題 4 魔術球問題 題解
題目鏈結 洛谷 p2765 假設有 n 根柱子,現要按下述規則在這 n 根柱子中依次放入編號為 1,2,3,cdots 的球 試設計乙個演算法,計算出在 n 根柱子上最多能放多少個球。例如,在 4 根柱子上最多可放 11 個球。對於給定的 n 計算在 n 根柱子上最多能放多少個球。對於這道題,我很自...