大整數相加和大整數相乘

2021-10-06 16:42:46 字數 1283 閱讀 3710

大整數運算是我們經常會碰到的演算法面試題之一。大整數運算往往會導致整形溢位而不能在ide直接通過四則運算執行。

下面是python3寫的大整數相乘和大整數相加函式。原理都較為相似,模擬手寫演算的場景從後往前計算並且考慮進製。

def multy(n1,n2):

n1=str(n1)[::-1]

n2=str(n2)[::-1]

n3=for i in range(len(n1+n2)):

for i in range(len(n1)):

for j in range(len(n2)):

n3[i+j]+=int(n1[i])*int(n2[j])

for i in range(len(n1+n2)):

if n3[i]>=10:

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

n3[i]%=10

return n3[::-1]

def plus(n1,n2):

n1=str(n1)[::-1]

n2=str(n2)[::-1]

n3=for i in range(max(len(n1),len(n2))+1):

jinwei=0

for i in range(min(len(n1),len(n2))):

dangqian=(jinwei+int(n1[i])+int(n2[i]))

if dangqian>=10:

jinwei=dangqian//10

dangqian=dangqian%10

n3[i]+=dangqian

i+=1

if len(n1)>=len(n2):

while(i= 10:

jinwei = dangqian // 10

dangqian = dangqian % 10

n3[i] += dangqian

i+=1

else:

while (i < len(n2)):

dangqian = (jinwei + int(n2[i]))

if dangqian >= 10:

jinwei = dangqian // 10

dangqian = dangqian % 10

n3[i] += dangqian

i+=1

return n3[::-1]

print(multy(99,99))

print(99*99)

print(plus(15,250123))

大整數的相加 相減和相乘

include include using namespace std string sub string s1,string s2 比較兩個正數的大小 inline int comparedata const string s1,const string s2 相加 string add stri...

大整數相乘

一 乘數和被乘數為long型別的 public class bignumberchenglong int pi1 new int getlength p1 int pi2 new int getlength p2 將乘數和被乘數存入陣列中 long temp p1 int num 0 int i 0...

大整數相乘

這是一道經典的上機題目 include include include define n 100 n代表乘數的位數,根據具體應用,想設多大設多大。function 大整數相乘演算法 引數 a 乘數 b 乘數 n a的長度 m b的長度 沒有返回值,結果直接放到全域性變數res陣列中,如果不想要全域性...