2つの大きな乗算python(ローカル関数と組み込みメソッドを呼び出さない)
752 ワード
def multi(a,b):
lena=len(a)
lenb=len(b)
aa=list(a)
bb=list(b)
result=[]
print(aa,bb)
for i in range(len(a)+len(b)):
result.append('0')
print(result)
for i in range(len(a)):
for j in range(len(b)):
loca=len(a)+len(b)-i-j-1
aa[i]=int(aa[i])
bb[j]=int(bb[j])
result[loca]=aa[i]*bb[j]
for i in range(len(result)-1):
result[i+1]+=int(result[i])//10
result[i]=int(result[i])%10
end=''
for i in range(len(result)):
end+=str(result[len(result)-i-1])
return end
a='100'
b='300'
print(multi(a,b))
乗算規則によれば、i位とj位が乗算されると、結果のi+j-1およびi+j位に、i位およびj位の成績結果10位がi+j位になる