大数(加法, 乘法(多位数与个位数))

加法

 1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 #include<cstdio>
 5 
 6 using namespace std;
 7 vector<int> A, B;
 8 
 9 vector<int> add(vector<int> &A, vector<int> &B) {
10     int t = 0;
11     vector<int> C;
12     for (int i = 0; i < A.size() || i < B.size(); i++) {
13         if (i < A.size()) t += A[i];
14         if (i < B.size()) t += B[i];
15         C.push_back(t % 10);
16         t /= 10;
17     }
18     if (t) C.push_back(1);
19     return C;
20 }
21 
22 int main() {
23     string a, b;
24     cin >> a >> b;
25     for (int i = a.size() - 1; i >= 0; i--) A.push_back(a[i] - '0');
26     for (int i = b.size() - 1; i >= 0; i--) B.push_back(b[i] - '0');
27     auto C = add(A, B);
28     for (int i = C.size() - 1; i >= 0; i--) printf("%d", C[i]);
29     return 0;
30 }

乘法(多位数与个位数)

 1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 
 5 using namespace std;
 6 
 7 vector<int> A;
 8 
 9 vector<int> mul(vector<int> &A, int b) {
10     vector<int> C;
11     int t = 0;
12     for (int i = 0; i < A.size() || t; i++) {
13         if(i < A.size()) t += A[i] * b;
14         C.push_back(t % 10);
15         t /= 10;
16     }
17     return C;
18 }
19 
20 int main() {
21     string a;
22     int b;
23     cin >> a >> b;
24     for (int i = a.size() - 1; i >= 0; i--) A.push_back(a[i] - '0');
25     auto C = mul(A, b);
26     for (int i = C.size() - 1; i >= 0; i--) printf("%d", C[i]);
27     return 0;
28 }
原文地址:https://www.cnblogs.com/SSummerZzz/p/13460231.html