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

下面是一个基于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方法用于实现大数相乘。

通过

相关推荐
devilnumber4 分钟前
Java 30 组高频技术 / 知识点多角度对比
java·开发语言
何以解忧,唯有..12 分钟前
Python 异常处理完全指南:从基础到高级实践
开发语言·前端·python
DLYSB_18 分钟前
让 PLC“开口说话”:基于 Modbus TCP 的声光语音告警设计与 Python 调试
python·网络协议·tcp/ip·报警灯
今日热点19 分钟前
微信小程序主体变更公证全流程实操解析:场景条件、材料规范、驳回避坑与Python校验脚本实现
python·微信小程序·小程序
O。O蛋黄酥啊19 分钟前
GraphRAG 和 LightRAG 详解与对比
人工智能·python·算法·rag·graphrag·lightrag
Buke..23 分钟前
【小程序逆向】某游快爆 AI 逆向 sign参数:AI 辅助分析与 MCP 工具链实战
前端·人工智能·爬虫·python·小程序·notepad++
gugucoding29 分钟前
57. 【Java】日志框架:SLF4J与Logback
java·开发语言·logback
疯狂打码的少年34 分钟前
【数据结构】八大排序算法对比总结(时间/空间/稳定性)
数据结构·笔记·算法
此生决int35 分钟前
深入理解C++系列(15)——AVL树
开发语言·c++
一只旭宝37 分钟前
预约系统版本2(pyhton+flask可视化版本)
服务器·数据库·c++·笔记·python·flask