python大數相乘

2021-08-19 04:35:08 字數 695 閱讀 6968

python大數相乘,時間複雜度o(n^2)

1、把資料扔到list裡然後逆轉,list順序0~n對應個位、十位...

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

3、按位相乘,相同豎線位置累加

4、結果list從0位開始遍歷,如果大於9進製

5、結果逆序

defmul

(n1,n2):

n1.reverse()

n2.reverse()

n3=print n1,n2

for i0 in xrange(len(n1)+len(n2)):

for i1 in xrange(len(n1)):

for i2 in xrange(len(n2)):

n3[i1+i2] += n1[i1]*n2[i2]

for i3 in xrange(len(n3)):

if(n3[i3]>9):

n3[i3+1] += n3[i3]/10

n3[i3] = n3[i3]%10

n3.reverse()

return n3

print mul([2,4,5,6,6],[4,5,2,0,5,3])

#[2,4,5,6,6]*[4,5,2,0,5,3]=[1, 1, 1, 0, 5, 1, 3, 3, 9, 9, 8]

python實現大數相乘

大數相乘使用陣列list記錄資料,類似小學時做乘法計算時豎著的計算方法 1 把資料讀入陣列,並實現陣列逆轉。陣列順序0 n與位數個位 十位.一致 2 建立儲存結果陣列,長度預設為兩個被乘數長度之和 3 按位相乘並儲存在對應的結果陣列中 5 執行進製操作,結果陣列從0開始,如果大於9則進製到下一位並獲...

大數相乘 大數相加

大數相乘 大數相乘 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...

大數相乘演算法

啥也說,直接給 高精度的乘法,乘數的位數沒有限制,小數點後面的位數也沒有限制 輸入引數 乘數 str1,str2 輸出引數 str str1 str2 返回值型別 string string large mult string str1,string str2,string str 輸出引數 ass...