首页 > 编程语言 >【PAT_Python解】1113 钱串子的加法

【PAT_Python解】1113 钱串子的加法

时间:2024-11-06 20:19:16浏览次数:3  
标签:__ num1 num2 Python max 钱串子 1113 result carry

原题链接:PTA | 程序设计类实验辅助教学平台

Tips:以下Python代码仅个人理解,非最优算法,仅供参考!多学习其他大佬的AC代码!

def add_base30(num1, num2):
    max_length = max(len(num1), len(num2))
    
    # 在前面补零,使两个字符串长度相同
    num1 = num1.zfill(max_length)
    num2 = num2.zfill(max_length)
    
    carry = 0
    result = []
    
    for i in range(max_length - 1, -1, -1):
        if '0' <= num1[i] <= '9':
            value1 = int(num1[i])  # 0-9
        else:
            value1 = ord(num1[i]) - ord('a') + 10  # a-t对应10-29

        if '0' <= num2[i] <= '9':
            value2 = int(num2[i])  # 0-9
        else:
            value2 = ord(num2[i]) - ord('a') + 10  # a-t对应10-29
        
        # 计算当前位的和
        total = value1 + value2 + carry
        carry = total // 30
        remainder = total % 30
        
        # 根据余数将结果字符添加到结果列表中
        if remainder < 10:
            result.append(str(remainder))
        else:
            result.append(chr(remainder - 10 + ord('a')))
    
    # 如果还有进位,则需要加到结果中
    if carry > 0:
        if carry < 10:
            result.append(str(carry))
        else:
            result.append(chr(carry - 10 + ord('a')))
    
    # 由于结果是反向构建的,因此反转
    result.reverse()
    
    # 连接为字符串并返回,测试点3:并去掉前导0
    result_str = ''.join(result).lstrip('0')
    
    # 处理特殊情况:测试点3,如果结果为空字符串,表示结果为0
    return result_str if result_str else '0'

def main():
    # 读取输入
    num1, num2 = input().strip().split()
    
    # 计算和
    result = add_base30(num1, num2)
    
    print(result)

if __name__ == "__main__":
    main()

标签:__,num1,num2,Python,max,钱串子,1113,result,carry
From: https://blog.csdn.net/m0_56677113/article/details/142961323

相关文章

  • 0基础学Python——类的单例模式、反射函数、记录类的创建个数、迭代器、生成器及生成
    0基础学Python——类的单例模式、反射函数、记录类的创建个数、迭代器、生成器及生成器练习类的单例模式定义代码演示反射函数代码演示记录类的创建个数迭代器定义特点生成器定义特点写法生成器练习生成器生成1-无穷的数字生成器生成无穷个素数类的单例模式定义......
  • 0基础学Python——面向对象-可迭代、面向对象-迭代器、call方法、call方法实现装饰器
    0基础学Python——面向对象-可迭代、面向对象-迭代器、call方法、call方法实现装饰器、计算函数运行时间面向对象--可迭代实现方法面向对象--迭代器实现方法call方法作用call方法实现装饰器代码演示计算函数运行时间代码演示面向对象–可迭代把对象看做容器,存储......
  • 基于卷积神经网络的柑桔病害识别与防治系统,resnet50,mobilenet模型【pytorch框架+pytho
     更多目标检测和图像分类识别项目可看我主页其他文章功能演示:柑橘病害识别与防治系统,卷积神经网络,resnet50,mobilenet【pytorch框架,python源码】_哔哩哔哩_bilibili(一)简介基于卷积神经网络的柑桔病害识别与防治系是在pytorch框架下实现的,这是一个完整的项目,包括代码,数据集,......
  • Python 日志分级记录到不同文件的实现
    Python日志分级记录到不同文件的实现介绍如何使用Python的logging模块,按INFO、WARNING和ERROR级别将日志记录到不同的文件中。通过封装CustomLogger类,方便在项目中直接调用,简化日志管理。1.实现目标分级日志记录:将INFO、WARNING、ERROR级别的日志分别记录到不......
  • python球探数据分析
    Python球探数据分析入门指南作为一名刚入行的小白,你可能会对如何使用Python进行球探数据分析感到困惑。不用担心,这篇文章将为你提供一份详细的入门指南,帮助你逐步掌握这项技能。流程概览首先,让我们通过一个表格来了解整个数据分析的流程:步骤描述1获取数据2数据......
  • Leetcode刷题Python之3254.长度为K的子数组的能量值I
    提示:关于数组子问题的挑战,涉及能量值的计算。文章目录一、问题描述示例二、解题思路三、代码实现1.引入库2.代码解释总结一、问题描述给定一个长度为n的整数数组nums和一个正整数k,我们需要计算每个长度为k的子数组的能量值。能量值的定义如下:如果子数......
  • c++ 嵌入 python问题
     在嵌入式Python环境中,确保你的C++应用程序能够加载静态编译的Python解释器,需要设置Python解释器的搜索路径。以下是实现这一目标的步骤:1.设置环境变量你可以通过设置环境变量 PYTHONHOME 来指定Python解释器的根目录。这个环境变量告诉Python解释器去哪里查找......
  • 【毕业设计】基于深度学习的水族馆生物识别 人工智能 深度学习 目标检测 Python
    一、背景意义    随着水族馆的普及和水生生态保护意识的提高,生物识别技术在水族馆管理、教育和研究中的重要性日益凸显。传统的生物识别方法往往依赖于人工观察和专家判断,效率低、准确性差且容易受到主观因素影响。水族馆中涉及的生物种类繁多,包括鱼类、虾类、海洋哺乳......
  • python项目打包指南
    #Python是解释型语言,我们写的Flask或Django项目如果部署,#源码可能会泄露,因此我们可以把项目打包成exe,来保护源码#需要用到工具-pyinstaller:把python项目打包成不同平台的可执行文件-nsis:NSIS(NullsoftScriptableInstallSystem)是一个开源的Windows系统下安装程序制作......
  • 第十三届蓝桥杯Python 大学 B 组 数位排序
    数位排序问题描述小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。例如,2022排在409前面,因为2022的数位之和是6,小于409的数位之和13。又如,......