用数据结构python写大数计算器

下面是一个基于Python的大数计算器的示例代码:

class BigNumberCalculator:
    def __init__(self, num1, num2):
        self.num1 = num1
        self.num2 = num2

    @staticmethod
    def add(num1, num2):
        result = ''
        carry = 0
        len1, len2 = len(num1), len(num2)
        max_len = max(len1, len2)
        
        for i in range(max_len):
            digit1 = int(num1[len1 - 1 - i]) if i < len1 else 0
            digit2 = int(num2[len2 - 1 - i]) if i < len2 else 0
            
            temp_sum = digit1 + digit2 + carry
            carry = temp_sum // 10
            digit_sum = temp_sum % 10
            
            result = str(digit_sum) + result
            
        if carry > 0:
            result = str(carry) + result
        
        return result

    @staticmethod
    def multiply(num1, num2):
        result = ''
        len1, len2 = len(num1), len(num2)
        product = [0] * (len1 + len2)
        
        for i in range(len1-1, -1, -1):
            for j in range(len2-1, -1, -1):
                digit1 = int(num1[i])
                digit2 = int(num2[j])
                
                temp_product = digit1 * digit2 + product[i+j+1]
                product[i+j+1] = temp_product % 10
                product[i+j] += temp_product // 10
        
        for digit in product:
            result += str(digit)
        
        result = result.lstrip('0')
        if not result:
            result = '0'
        
        return result

# 使用示例
num1 = '12345678901234567890'
num2 = '98765432109876543210'

calculator = BigNumberCalculator(num1, num2)

add_result = calculator.add(num1, num2)
print(f'Addition: {num1} + {num2} = {add_result}')

multiply_result = calculator.multiply(num1, num2)
print(f'Multiplication: {num1} x {num2} = {multiply_result}')

这个示例代码定义了一个名为BigNumberCalculator的类,其中包含了两个静态方法addmultiplyadd方法用于实现大数相加,multiply方法用于实现大数相乘。

通过

相关推荐

  1. 数据结构python大数计算器

    2024-01-08 03:48:02       59 阅读
  2. Python重点数据结构基本

    2024-01-08 03:48:02       28 阅读
  3. Python学习笔记(三) 数据结构与常方法

    2024-01-08 03:48:02       55 阅读
  4. Python设计一个计算器

    2024-01-08 03:48:02       34 阅读
  5. python-读文本数据

    2024-01-08 03:48:02       34 阅读
  6. Python代码大全

    2024-01-08 03:48:02       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 03:48:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 03:48:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 03:48:02       82 阅读
  4. Python语言-面向对象

    2024-01-08 03:48:02       91 阅读

热门阅读

  1. SpringBoot 中实现订单30分钟自动取消的策略

    2024-01-08 03:48:02       62 阅读
  2. Docker - 启动 MySQL 闪退解决方案

    2024-01-08 03:48:02       49 阅读
  3. 实现一个网页聊天室

    2024-01-08 03:48:02       47 阅读
  4. 讲解eureca和nacus的区别

    2024-01-08 03:48:02       52 阅读
  5. Kvaser使用(Can总线)

    2024-01-08 03:48:02       197 阅读
  6. 数据库连接使用问题 - 1

    2024-01-08 03:48:02       57 阅读
  7. Docker学习笔记(一):Docker命令总结

    2024-01-08 03:48:02       65 阅读
  8. 学习录

    学习录

    2024-01-08 03:48:02      50 阅读
  9. 【深度学习在时序数据异常检测中的创新】

    2024-01-08 03:48:02       51 阅读
  10. tyxsspa/AnyText 阿里生成文字

    2024-01-08 03:48:02       62 阅读