高精度计算
一、高精度加法(A+B)
- 位数10^6(将每一位存到数组中)
- 数组中的顺序:个十百千……
- 进位的处理方式:定义一个
t
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
vector<int> add(vector<int> &A, vector<int> &B){
vector<int> C;
int t = 0;
for(long unsigned int i = 0;i < A.size() || i < B.size();i++){
if(i < A.size()) t += A[i];
if(i < B.size()) t += B[i];
C.push_back(t%10);
t/=10;
}
if(t) C.push_back(1);
return C;
}
int main(){
string a,b;
vector<int> A,B;
cin >> a >> b;
for(int i = a.size() - 1 ;i >= 0 ; i--) A.push_back(a[i] - '0');
for(int i = b.size() - 1 ; i >= 0;i--) B.push_back(b[i] - '0');
vector<int> C = add(A,B);
for(int i = C.size() - 1;i >= 0;i--) printf("%d",C[i]);
return 0;
}
二、高精度减法(A-B)
三、高精度乘法(A*B
)
四、高精度除法(A/B)