c++
  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
/* 高精度加法 案例 129 + 12 ------- 141 */ #include <iostream> #include <vector> using namespace std; vector<int> add(vector<int> &A, vector<int> &B) { vector<int> c; //定义int型vector容器,存储数字位 int t = 0; //如果i小于A字符串的长度,或者B的长度,执行下列循环 for(int i = 0;i < A.size() || i < B.size();i++){ if(i < A.size()) t+=A[i]; // 如i = 0的时候,t = 9 if(i < B.size()) t+= B[i];// i = 0 的时候 ,t = 9 + 2 = 11 c.push_back(t%10); //把个位存储到c容器中 t /= 10; //如果t>10,那么这样就可以求到进位1,加入到第二次计算中 } if(t) c.push_back(1);//如果有剩余进位,那么把它加入到c容器中 return c;//返回C容器 } int main(void) { 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'); //字符'number' - '0' 等于 int number 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--) cout << c[i]; }