- 前言
- 一、高精度加法
- 二、高精度减法
- 三、高精度乘法
- 四、高精度除法
前言
高精度主要是对c++语言而言,比如两个1e6相加减,一个数的长度为1e6和一个数为1e9相乘除,java里面有大整数类和python里面默认无穷大不需要考虑,而且高精度不常考,所以这里只介绍一些模板。
提示:以下是本篇文章正文内容,下面案例可供参考
一、高精度加法vectoradd(vector &A,vector &B){ vector C; int t=0;//进位 for(int i=0;i 二、高精度减法 vector三、高精度乘法sub(vector &A,vector &B){ vector C; for(int i=0,t=0;i 1&&C.back()==0) C.pop_back();//去掉前导0 return C; } vector四、高精度除法mul(vector &A,int b){ int t=0; vector C; for(int i=0;i 1&&C.back()==0) C.pop_back(); return C; } 因为除法是从高位往地位除,与加减乘不一样,为了统一,所以最后需要将结果翻转,reverse函数在头文件algorithm中。
vectordiv(vector &A,int b,int &r){ r=0; vector C; for(int i=A.size()-1;i>=0;i--){ r=r*10+A[i]; C.push_back(r/b); r%=b; } reverse(C.begin(),C.end()); while(C.size()>1&&C.back()==0) C.pop_back(); return C; }



