数论superGCD 高精度GCD
高精度GCD https://www.luogu.org/problemnew/show/P2152是一道模板题,因为不会phython,所以・・・只能老老实实写高精度。这里我们用到更相减损法求公约数。 看 首先,根据上面的步骤,分析他们是否是偶数,所以需要检查每个大数的最后一位;直到两个都是奇数,然后用大数减去小数,减去之后再重复之前的操作,然后把最后的数乘上若干个2就可以了; 分析操作过程,我们需要处理 高精度判断奇偶数 , 高精度乘2 , 高精度除2 , 高精度减法 这四个操作。 自己也是看了网上很多代码,然后照猫画虎,能改进的地方有很多。 高精度判断奇偶数 bool judge(const node &a) { return a.num[0]%2==0?//判断最后一位就好 } 高精度乘2 node mul2(node a) { int in=0; for(int i=0;i<a.len;i++) { a.num[i]=a.num[i]*2+in; in=0; if(a.num[i]>=10) { in=a.num[i]/10; a.num[i]%=10; if(i==a.len-1) a.len++; } } return a; } 高精度除2 node div2(node a) { for(int i=a.len-1;i>=1;i--)//这里是1,0的话会出现a