大数(加法, 乘法(多位数与个位数))
加法
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 }
1
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步