1. 程式人生 > >【華為2018-09-15線上筆試】十進位制20位資料乘法

【華為2018-09-15線上筆試】十進位制20位資料乘法

題目描述

十進位制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