電腦上自帶的計算器在計算結果數值較小的運算時較為精確,比如乘法,結果通常不能大于2的64次方,這里給出高精度乘法的源代碼:
#include<iostream>#include<string>using namespace std;void JinWei(int *Result, int length);int main(){ string a, b; cout << "請輸入兩個數:" << endl; cin >> a >> b; int ResultLength = a.length() + b.length()-1; int *Result = new int[ResultLength]; memset(Result, 0, sizeof(int)*ResultLength); for (int i = a.length()-1; i >=0; i--) { for (int j = b.length()-1; j >=0; j--) { Result[i + j] +=int(a[i]-48) * int(b[j]-48); JinWei(Result, ResultLength); } } cout <<"結果="; for (int i = 0; i < ResultLength;i++) { cout << Result[i]; } return 0;}void JinWei(int *Result, int length){ for (int _t = length - 1; _t >0; _t--) { if (Result[_t]>9) { Result[_t-1] +=Result[_t]/10; Result[_t] %= 10; } }}新聞熱點
疑難解答