大数相乘的实现,在这里,采用最直接的实现方法:类似于手工计算,逐位相乘。
1 #include <iostream> 2 3 using namespace std; 4 5 //反转字符,使其符合数组低位为数字低位 6 void reverseNum(char* s1) 7 { 8 int i=0; 9 int j=strlen(s1)-1; 10 while(i<j) 11 { 12 char temp=s1[i]; 13 s1[i]=s1[j]; 14 s1[j]=temp; 15 ++i; 16 --j; 17 } 18 } 19 20 //输入两个数字字符串,进行相乘,并返回结果字符串 21 char* BigNumMultiple(char* s1,char* s2) 22 { 23 //反转数字 24 reverseNum(s1); 25 reverseNum(s2); 26 27 int temp1,temp2,addFlag,multiFlag; 28 int len1=strlen(s1); 29 int len2=strlen(s2); 30 temp1=temp2=0; 31 32 char* result=new char[len1+len2+1]; 33 memset(result,48,len1+len2); 34 result[len1+len2]='