在这里,我们约定,能用int表示的数据视为单精度,否则为高精度。所有函数的设计均采用带返回值的形式。

本文包含

1.高精度加法

2.高精度减法

3.高精度乘法

1)高精度乘高精度的朴素算法

2)高精度乘高精度FFT优化算法

3)高精度乘单精度

4.高精度除法

1)高精度除高精度

2)高精度除单精度

5.高精度取模

1)高精度对高精度取模

2)高精度对单精度取模

6.高精度阶乘

7.高精度幂

8.高精度GCD

9.高精度进制转换

10.高精度求平方根

下面切入正题

1.高精度加法

传入参数约定:传入参数均为string类型,返回值为string类型

算法思想:倒置相加再还原。

算法复杂度:o(n)

高精度模板(综合篇)
 1 string add(string a,string b)//只限两个非负整数相加
 2 {
 3     const int L=1e5;
 4     string ans;
 5     int na[L]={0},nb[L]={0};
 6     int la=a.size(),lb=b.size();
 7     for(int i=0;i<la;i++) na[la-1-i]=a[i]-'0';
 8     for(int i=0;i<lb;i++) nb[lb-1-i]=b[i]-'0';
 9     int lmax=la>lb?la:lb;
10     for(int i=0;i<lmax;i++) na[i]+=nb[i],na[i+1]+=na[i]/10,na[i]%=10;
11     if(na[lmax]) lmax++;
12     for(int i=lmax-1;i>=0;i--) ans+=na[i]+'0';
13     return ans;
14 }
View Code 

相关文章:

  • 2022-01-23
猜你喜欢
  • 2021-12-17
  • 2021-11-27
  • 2021-09-11
  • 2021-11-14
相关资源
相似解决方案