方法一:a*b,像豎式乘法那樣每次用b的一位去乘以a的每一位,再疊加
如1234*123=1234*3+1234*2+1234*1;
方法二:先算然後再把每一位相加,就是先不算任何的進製,將每一位相乘,然後相加的結果加到同乙個位置上,到最後才計算進製。
方法三:分治演算法
方法一c++**
#include using namespace std;
int main();
int i, j, k=0;
int lena = a.size();
int lenb = b.size();
int carry;
for (i = lenb-1; i >=0; i--)
k++;
carry /= 10;
}while (carry != 0)
} for (i = k-1; i>=0;i--)
cout << num[i];
cout << endl;
} return 0;
}
方法二**:
#include #include using namespace std;
int main();
int i, j, k=0;
int lena = a.size();
int lenb = b.size();
int carry;
for (i = lenb-1; i >=0; i--)
} carry = 0;
for (i = 0; i < k; i++)
while (carry > 0)
for (i = k-1; i>=0;i--)
cout << num[i];
cout << endl;
} return 0;
}
大整數乘法
參考 http hi.baidu.com operationsystem blog item 6e45dd1af1acadf3ae51330b.html 在計算機中,長整型 long int 變數的範圍是 2147483648 至 2147483647,因此若用長整型變數做乘法運算,乘積最多不能超過...
大整數乘法
問題描述 by 計算機演算法設計與分析 王曉東 p17 通常,在分析乙個演算法的計算複雜性時,都將加法和乘法運算當作是基本運算來處理,即將執行一次加法或乘法運算所需的計算時間當作乙個僅取決於計算機硬體處理速度的常數。這個假定僅在計算機硬體能對參加運算的整數直接表示和處理時才是合理的。然而,在某些情況...
大整數乘法。
include using namespace std int multi int num1,int size1,int num2,int size2 int size size1 size2 int ret new int size int i 0 for i 0 iret i 0 for i 0...