摘要: 问题引入 对于取余运算,有一下一些性质: 但是唯独除法是不满足的: 为什么除法错的呢?很好证明: 而对于一些题目,我们必须在中间过程中进行求余,否则数字太大,电脑存不下,那如果这个算式中出现除法,我们就需要逆元了,将除法运算转换为乘法运算。 逆元 定义: 对于c,可以说是特殊意义上的倒数,我们可以理 阅读全文
posted @ 2019-10-16 17:30 czc1999 阅读(1908) 评论(0) 推荐(0) 编辑
摘要: 1、引入 最大公约数gcd算法: 辗转相除法 int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } 最小公倍数lcm算法: 根据 a*b = gcd(a,b) * lcm(a,b) 有 lcm = a*b / gcd,避免溢出,推荐 阅读全文
posted @ 2019-10-16 17:29 czc1999 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 模平方根算法 求a的b次方有库函数 pow(a, b),可是它返回值是double类型,而且在不同开发环境下,数据有精度误差(比如某DEV,详见),如果自己写for循环,当b特别大时,超范围、超时都妥妥的。所以,就有了模平方根算法,也就是通常说的快速幂。 原理: //递归写法 int pow_pow 阅读全文
posted @ 2019-10-16 16:39 czc1999 阅读(554) 评论(0) 推荐(0) 编辑