思路
大整數相乘,其實完全套用了列豎式計算乘法的思路,重點就是講豎式計算這一過程用**表示。豎式計算中,乙個乘數會和另乙個乘數逐位相乘,從個位到最高位,相乘的結果依次左移一位,最後將多個計算結果相加即可,而左移一位其實就是「×
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只小熊的戰鬥力和飢...