高精度减法
// C = A - B, 满足A >= B, A >= 0, B >= 0vector<int> sub(vector<int> &A, vector<int> &B){ vector<int> C; for (int i = 0, t = 0; i < A.size(); i ++ ) { t = A[i] - t; if (i < B.size()) t -= B[i]; C.push_back((t + 10) % 10); if (t < 0) t = 1; else t = 0; } while (C.size() > 1 && C.back() == 0) C.pop_back(); return C;}
// 一维数组版本void add(int A[], int B[], int C[]){ int t = 0; for (int i = 0; i < lena; i++) { t = A[i] - t; if (i < lenb) t -= B[i]; C[lenc++] = (t + 10) % 10; if (t < 0) t = 1; else t = 0; } while (lenc > 0 && C[lenc] == 0) lenc--;}
例题:1169:大整数减法
// 1. vector<>模板做法// 2. 一维数组方法// 核心代码是,t = A[i] - t; t表示的是借位