摘要:
给出方程a*x+b*y=c,其中所有数均是整数,且a,b,c是已知数,求满足那个等式的x,y值?这个方程可能有解也可能没解也可能有无穷多个解(注意:这里说的解都是整数解)? 既然如此,那我们就得找出有解和无解的条件! 先给出定理:方程a*x+b*y=c有解,当且仅当c%gcd(a,b)=... 阅读全文
摘要:
我们都知道欧几里得算法是用来快速求两个数的最大公约数的算法,效率较高:2O(logn)。 我们先给出算法的实现: 1 int gcd_1(int a, int b) 2 { 3 if(b==0) return a; 4 return gcd_1(b, a%b); 5 } 6 ... 阅读全文
摘要:
假设我们现在需要知道 ab 的后 n位数或前 n位数,简单直观的做法就是求出ab 的值,然后在分别取前n位或后n位,不过在 a,b很大的情况下显然是无法存储的。所以,直接求是不可能的了。 让我们先来看看后 n位如何求?因为我们只要后n位,那么我们都知道把ab 的值模上一个10n就是所求。根据求... 阅读全文