大數計算(加減乘除)
阿新 • • 發佈:2019-02-23
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 }
大數計算(加減乘除)