python實現大數相乘

2021-06-12 23:47:06 字數 588 閱讀 7276

大數相乘使用陣列list記錄資料,類似小學時做乘法計算時豎著的計算方法:

1、把資料讀入陣列,  並實現陣列逆轉。陣列順序0~n與位數個位、十位....一致

2、建立儲存結果陣列,長度預設為兩個被乘數長度之和

3、按位相乘並儲存在對應的結果陣列中

5、執行進製操作,結果陣列從0開始,如果大於9則進製到下一位並獲取新結果

6、結果執行逆序

def multipy(aaa,bbb):

aaa.reverse()

bbb.reverse()

ccc = [0 for k in range(0,len(aaa)+len(bbb))]

for i in range(0,len(aaa)):

for j in range(0,len(bbb)):

ccc[i+j]+=aaa[i]*bbb[j]

for m in range(0,len(ccc)):

if(ccc[m]>9):

ccc[m+1] += ccc[m]/10

ccc[m] = ccc[m] % 10

ccc.reverse()

return ccc

python大數相乘

python大數相乘,時間複雜度o n 2 1 把資料扔到list裡然後逆轉,list順序0 n對應個位 十位.2 建立儲存結果list,長度預設為兩個被乘數長度之和 3 按位相乘,相同豎線位置累加 4 結果list從0位開始遍歷,如果大於9進製 5 結果逆序 defmul n1,n2 n1.rev...

大數相乘 大數相加

大數相乘 大數相乘 1 include includeint main int ans i while lb 0 int cnt j for i 0 i 0 i if e i break 去除前面多餘的0 if i 1 else 當結果是0的時候 printf 0 printf n return 0...

分治法實現大數相乘 C 實現

分治法的思路一般的演算法教科書上都有,大數相乘也經常用來作為練習分治思想的很好的例子。具體如下 雖然上面的原理是對應2進製的,但是對於10進製也同樣可行。用c 實現,盡可能的利用c 的特性。本例中,只要拆分的數字小於9位數,就可以直接相乘計算,保證不會溢位。在程式設計中,還需要用的加法和減法,也要通...