1. 程式人生 > >大數計算(加減乘除)

大數計算(加減乘除)

a* lse 變量 計算 tmp tip 不用 ++ clas

大數乘法

string solve(string, string)

設置中間進位變量c和累加變量d(從上到下考慮,不用存儲中間變量)

 1 string multiply(string num1, string num2) {
 2     int len1 = num1.size();
 3     int len2 = num2.size();
 4     int c = 0;
 5     string tmp(len1+len2,0);
 6     for(int i=len2-1;i>=0;i--)
 7     {
 8         int b = num2[i]-
0; 9 for(int j=len1-1;j>=0;j--) 10 { 11 int a = num1[j]-0; 12 int d = tmp[i+j+1]-0; 13 int x = a*b+d+c; 14 tmp[i+j+1] = x%10 +0; 15 c = x/10; 16 } 17 if(c) 18 { 19 tmp[i] = c+
0; 20 c=0; 21 } 22 } 23 int k=0; 24 for(;tmp[k]==0&&k<tmp.size();k++); 25 if(k==tmp.size())return "0"; 26 else return tmp.substr(k); 27 }

大數計算(加減乘除)