陣列可以實現的演算法很多,典型應用就是大整數相乘問題。利用的思想非常巧妙,感覺和鍊錶實現多項式運算有異曲同工,大整數相乘主要避免計算機儲存精度不夠的時候。按照基本的乘法運算實現即可!
主要注意返回指標型別,和關鍵點k=i的技巧。
/*! * \file 演算法之美--大整數乘法問題.cpp
* * \author ranjiewen
* \date 2016/12/04 15:58
* * */
#include
using
namespace
std;
#define size 14
int *multi(int *_num1, int size1, int *_num2, int
size2)
}for (int i = 0; i < size;i++)
}return
ret;
}int main(int argc, char**agrv)
;
int num2[size] = ;
int *ret =multi(num1,size,num2,size);
for (int i = 2 * size - 1; i >= 0;i--)
delete
ret;
return0;
}
演算法 大整數乘法
問題描述 求兩個不超過200位的非負整數的積。輸入形式 有兩行,每行是乙個不超過200位的非負整數,沒有多餘的前導0。輸出形式 一行,即相乘後的結果。結果裡不能有多餘的前導0,即如果結果是342,那麼就不能輸出為0342。樣例輸入 1234567890 9876543210 樣例輸出 1219326...
大整數乘法問題
大整數乘法問題 應用陣列解決,由於計算機的精度是有限的,因此單純使用程式語言提供的原子資料型別來 完成兩個大整數的乘法顯然是不切實際的。可以考慮用兩個陣列來分別儲存一些大於10的整數,這些數字按順序 排列在一起,分別表示乙個大整數的每一位上的數字,於是大整數的儲存問題就解決了。然後按照基本乘法規則 ...
分治演算法 大整數乘法
用分治演算法程式設計實現兩個n 位十進位製大整數的乘法運算。分析 用分治演算法程式設計實現兩個n 位十進位製大整數的乘法運算。演算法描述 兩個十進位制的數 x y x a 10 n1 b y c 10 n2 d 則 x y a 10 n1 b c 10 n2 d 設乙個陣列,將其看做10000 進製...