大整數運算是我們經常會碰到的演算法面試題之一。大整數運算往往會導致整形溢位而不能在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陣列中,如果不想要全域性...