辗转相除何时停

辗转相除在【0】时停止。 本节模型:my_gcd(a, b) 辗转相除求最大公约数,my_lcm(a, b) = a / gcd * b 求最小公倍数。

开始练习 →

最小公倍数怎么算

已知 gcd,lcm(a, b) 等于【0】。 本节模型:my_gcd(a, b) 辗转相除求最大公约数,my_lcm(a, b) = a / gcd * b 求最小公倍数。

开始练习 →

gcd(24, 36) 是多少

运行下面这段程序: 本节模型:my_gcd(a, b) 辗转相除求最大公约数,my_lcm(a, b) = a / gcd * b 求最小公倍数。 #include <iostream> #include <string&

开始练习 →

补全:辗转相除

补全 my_gcd 的核心一步:用余数替换。补全后输出 gcd(48, 18)。 本节模型:my_gcd(a, b) 辗转相除求最大公约数,my_lcm(a, b) = a / gcd * b 求最小公倍数。 (本题用 g++ -std=c

开始练习 →

补全:最小公倍数

补全 my_lcm:先除 gcd 再乘,防溢出。补全后输出 lcm(6, 8)。 本节模型:my_gcd(a, b) 辗转相除求最大公约数,my_lcm(a, b) = a / gcd * b 求最小公倍数。 (本题用 g++ -std=c

开始练习 →

补全:循环终止条件

补全 my_gcd 的循环条件:余数为 0 才停。补全后输出 gcd(14, 9)。 本节模型:my_gcd(a, b) 辗转相除求最大公约数,my_lcm(a, b) = a / gcd * b 求最小公倍数。 (本题用 g++ -std

开始练习 →

快速幂的复杂度

快速幂求 a^b 的时间复杂度是【0】。 本节模型:qpow(a, b, mod) 把指数 b 按二进制拆,O(log b) 求 a^b % mod。

开始练习 →

为什么不直接乘 b 次

第 1 步:13 的二进制,从低位看 第 2 步:下面是 2、2²、2⁴、2⁸ 第 3 步:这位是 1:结果乘上 2 第 4 步:这位是 0:跳过 第 5 步:这位是 1:结果乘上 16 第 6 步:这位是 1:结果乘上 256 第 7 步

开始练习 →

b & 1 判断的是什么

快速幂里 b & 1 判断的是 b【0】。 本节模型:qpow(a, b, mod) 把指数 b 按二进制拆,O(log b) 求 a^b % mod。

开始练习 →

每轮为什么把 a 平方

快速幂每轮 a = a * a % mod,是为了【0】。 本节模型:qpow(a, b, mod) 把指数 b 按二进制拆,O(log b) 求 a^b % mod。

开始练习 →