2018拼多多校招 大整數相乘 Python解法

2021-09-14 04:47:40 字數 974 閱讀 7544

思路

大整數相乘,其實完全套用了列豎式計算乘法的思路,重點就是講豎式計算這一過程用**表示。豎式計算中,乙個乘數會和另乙個乘數逐位相乘,從個位到最高位,相乘的結果依次左移一位,最後將多個計算結果相加即可,而左移一位其實就是「×

10\times 10

×10」,期間同時考慮進製加至前一位,這樣整個思路就很清晰了。

python**

data =

input()

.split(

)stra, strb = data[0]

, data[1]

lena, lenb =

len(stra)

,len

(strb)

out =[0

]*(lena+lenb+1)

if lena > lenb:

stra, strb = strb, stra

lena, lenb = lenb, lena

jinwei =

0for i in

range

(lena)

:for j in

range

(lenb)

: out[i+j]+=(

int(stra[lena-

1-i]))

*(int(strb[lenb-

1-j]))

out[i+j+1]

+= out[i+j]

//10

out[i+j]

%=10

out.reverse(

)for i in

range

(len

(out)):

if out[i]!=0

:print(''

.join(

str(c)

for c in out[i:])

)break

2018校招真題 拼多多2 大整數相乘

題目描述 有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。輸入描述 空格分隔的兩個字串,代表輸入的兩個大整數輸出描述 輸入的乘積,用字串表示示例1 輸入 72106547548473106236 982161082972751393輸出 70820244...

(牛客2018校招真題03)大整數相乘(拼多多)

有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。空格分隔的兩個字串,代表輸入的兩個大整數 輸入的乘積,用字串表示 輸入 72106547548473106236 982161082972751393輸出 7082024482963453804084865...

拼多多2018校招 小熊吃糖

有n只小熊,他們有著各不相同的戰鬥力。每次他們吃糖時,會按照戰鬥力來排,戰鬥力高的小熊擁有優先選擇權。前面的小熊吃飽了,後面的小熊才能吃。每只小熊有乙個飢餓值,每次進食的時候,小熊們會選擇最大的能填飽自己當前飢餓值的那顆糖來吃,可能吃完沒飽會重複上述過程,但不會選擇吃撐。現在給出n只小熊的戰鬥力和飢...