• 大整数相乘


    有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。
    输入描述:
    空格分隔的两个字符串,代表输入的两个大整数
    输出描述:
    输入的乘积,用字符串表示
    输入例子1:
    72106547548473106236 982161082972751393

    输出例子1:
    70820244829634538040848656466105986748

     1 def get_mul(num, k):
     2     mid_val = 0
     3     result = []
     4     for i in num[::-1]:
     5         temp = int(i)*k + mid_val
     6         if temp < 10:
     7             mid_val = 0
     8             result.append(temp)
     9         else:
    10             result.append(temp % 10)
    11             mid_val = temp // 10
    12     if mid_val > 0:
    13         result.append(mid_val)
    14     return result[::-1]
    15 
    16 def get_sum(s1, s2):
    17     len1 = len(s1)
    18     len2 = len(s2)
    19     if len1 > len2:
    20         s2 = [0] * (len1 - len2) + s2
    21     if len1 < len2:
    22         s1 = [0] * (len2 - len1) + s1
    23     mid_temp = 0
    24     sum_list = []
    25     for m in range(len(s1)-1, -1, -1):
    26         temp_ = s1[m] + s2[m] + mid_temp
    27         if temp_ < 10:
    28             mid_temp = 0
    29             sum_list.append(temp_)
    30         else:
    31             sum_list.append(temp_ % 10)
    32             mid_temp = temp_ // 10
    33     if mid_temp > 0:
    34         sum_list.append(mid_temp)
    35     return sum_list[::-1]
    36 
    37 if __name__ == '__main__':
    38     str_ = input()
    39     num1, num2 = str_.split()
    40     first = get_mul(num1, int(num2[-1]))
    41     for j in range(len(num2)-2, -1, -1):
    42         mul_v = get_mul(num1, int(num2[j]))
    43         mul_v = mul_v + [0]*(len(num2)-j-1)
    44         cross_v = get_sum(first, mul_v)
    45         first = cross_v
    46     first = map(str, first)
    47     final_result = ''.join(first)
    48     print(final_result)


  • 相关阅读:
    CS231n笔记 Lecture 4 Introduction to Neural Networks
    CS231n笔记 Lecture 3 Loss Functions and Optimization
    CS231n笔记 Lecture 1 Introduction
    LeetCode
    Python备忘录
    Celery简介
    SaltStack error: No module named 'salt'
    IO模型
    TCP协议的三次握手和四次分手
    第一章:正则表达式
  • 原文地址:https://www.cnblogs.com/laresh/p/7465794.html
Copyright © 2020-2023  润新知