【華為2018-09-15線上筆試】十進位制20位資料乘法
阿新 • • 發佈:2018-12-10
題目描述
十進位制20位資料乘法
輸入描述:
兩個不超過20位都不為0的十進位制字串
輸出描述:
字串相乘結果
示例1
輸入
20000000000000000000 30000000000000000000
輸出
600000000000000000000000000000000000000
Python程式碼
# -*- coding:utf-8 -*-
def recursive_multiply(x, y, n):
if n==1:
return x*y
else:
a = x/pow(10, n/2)
b = x-a*pow(10, n/2)
c = y/pow(10, n/2)
d = y-c*pow(10, n/2)
ac = recursive_multiply(a, c, n/2 )
bd = recursive_multiply(b, d, n/2)
p = recursive_multiply(a+b, c+d, n/2) - ac -bd
return ac*pow(10, n) + p*pow(10, n/2) + bd
if __name__ == '__main__':
num1 = int(raw_input())
num2 = int(raw_input())
r = recursive_multiply(num1,num2,4)
print r