高精度乘法 实现思路 读入字符串,并将字符串的值存储到整型数组中,分别是被乘数数组a,乘数数组b。通过两层for循环将数组a和数组b中各个元素乘起来,结果存放在数组c中。若是数组c中的末尾元素为0且数组长度大于1,将数组长度减一。 代码实现 #include <iostream> #include <string> using namespace std; string str1,str2; int len1,len2,len,x; int a[205], b[205], c[205]; int main(){ cin >> str1; cin >> str2; len1 = int(str1.size()), len2 = int(str2.size()); for(int i = 0; i < len1; i ++){ a[len1-i] = str1[i] - '0'; } for(int i = 0; i < len2; i ++){ b[len2-i] = str2[i] - '0'; } for(int i = 1; i <= len1; i ++){ x = 0; for(int j = 1; j <= len2; j ++){ c[i+j-1] = a[i] * b[j] + x + c[i+j-1]; x = c[i+j-1]/10; c[i+j-1] %= 10; } c[i+len2] = x; } len = len1 + len2; while(c[len] == 0 && len>1){ len --; } for(int i = len; i >= 1; i --){ cout << c[i]; } cout << endl; }