200 的二进制里有几个 1

运行下面这段程序: 本节模型:to_base(n, base) 除基取余转进制;count_bits(n) 数二进制里 1 的个数。 #include <iostream> #include <string> #in

开始练习 →

补全:取当前这一位

补全 to_base:当前最低位是 n % base。补全后输出 255 的十六进制。 本节模型:to_base(n, base) 除基取余转进制;count_bits(n) 数二进制里 1 的个数。 (本题用 g++ -std=c++17

开始练习 →

补全:除以 base

补全 to_base:每轮把 n 除以 base。补全后输出 100 的八进制。 本节模型:to_base(n, base) 除基取余转进制;count_bits(n) 数二进制里 1 的个数。 (本题用 g++ -std=c++17 -O

开始练习 →

补全:数最低位

补全 count_bits:每轮累加最低位。补全后输出 255 的二进制里 1 的个数。 本节模型:to_base(n, base) 除基取余转进制;count_bits(n) 数二进制里 1 的个数。 (本题用 g++ -std=c++1

开始练习 →

加法为什么要先各自取模

(a + b) % p 常写成先各取模再相加取模,主要原因是【0】。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。

开始练习 →

乘法取模的性质

(a * b) % p 等于【0】。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。

开始练习 →

减法取模为什么要 +p

第 1 步:在 0..6 这一圈里,从 3 出发 第 2 步:3 - 5 = -2:掉出这一圈了 第 3 步:C++ 里 -2 % 7 仍然是 -2 第 4 步:先 +7 再取模:落回 5 0 1 2 3 4 5 6 x 模意义下的减法常写

开始练习 →

取模加法的结果

运行下面这段程序: 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!。 #include <iostream> #include

开始练习 →

补全:模加法

补全 madd:各取模再相加再取模。补全后输出 madd(10^9, 7, 10^9+7)。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘边取模求 n!

开始练习 →

补全:模乘法

补全 mmul:各取模再相乘再取模。补全后输出 mmul(100000, 100000, 10^9+7)。 本节模型:madd / mmul / msub 模意义下加乘减(先取模防溢出、减法 +p 防负),fact_mod(n, p) 边乘

开始练习 →