def big_data_multiply(num_1,num_2): #print num_1*num_2 num_1_list = [int(i) for i in str(num_1)] # 相当于竖式的下一层 num_2_list = [int(i) for i in str(num_2)] # 相当于竖式的上一层 result = [0]*len(num_2_list) i = len(num_1_list)-1 while i>=0: add = 0 # 乘法竖式的进位 j = len(num_2_list) - 1 while j>=0: k = (num_1_list[i]*num_2_list[j]+add)%10 add = (result[j]+num_1_list[i]*num_2_list[j]+add)/10 result[j]=(result[j]+k)%10 j-=1 result.insert(0,add) i-=1 if result[0]==0: return result[1:] else: return result print big_data_multiply(22323382109830928302832921083290138209382323,121362187937293729372983721932123434343433)
模拟竖式的大数相乘---Python实现
猜你喜欢
转载自blog.csdn.net/qq_38322240/article/details/83211102
今日推荐
周排行