首页 > 编程语言 >[算法题python]728.自除数

[算法题python]728.自除数

时间:2023-08-03 15:44:37浏览次数:43  
标签:right python num 728 整除 remainder 除数 left

自除数 是指可以被它包含的每一位数整除的数。

  • 例如,128 是一个 自除数 ,因为 128 % 1 == 0128 % 2 == 0128 % 8 == 0

自除数 不允许包含 0 。

给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。

 

示例 1:

输入:left = 1, right = 22
输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

示例 2:

输入:left = 47, right = 85
输出:[48,55,66,77]

 

提示:

  • 1 <= left <= right <= 104
class Solution:
    def selfDividingNumbers(self, left: int, right: int) -> List[int]:
        result = []  # 创建一个空列表用于保存结果
        for i in range(left, right+1):
            num = i  # 保存当前数值,用于内部循环操作
            while num > 0:
                remainder = num % 10
                if remainder == 0 or i % remainder != 0:
                    break
                num = num // 10
            else:
                result.append(i)  # 将自除数添加到结果列表中
        return result

 

if remainder == 0 or i % remainder != 0:

 

这行代码的目的是在发现当前数值 `i` 的个位数 `remainder` 是 0,或者 `i` 不能被 `remainder` 整除时,跳出当前内部循环。

解释这行代码的逻辑如下:

1. `if remainder == 0`: 这个条件判断的意义在于检查当前数值 `i` 的个位数是否为 0。如果个位数为 0,则说明 `i` 不可能是自除数,因为在自除数中,除数不能为 0。所以,如果 `remainder` 为 0,就直接跳出当前内部循环,不再继续检查 `i` 的其他位数。

2. `i % remainder != 0`: 这个条件判断的意义在于检查当前数值 `i` 是否能被个位数 `remainder` 整除。如果不能整除,说明 `i` 不是自除数,因为自除数的定义是能够被它的每一位数整除的数。所以,如果 `i` 不能被 `remainder` 整除,也直接跳出当前内部循环。

综合这两个条件判断,如果 `remainder` 是 0 或者 `i` 不能被 `remainder` 整除,就表示当前数值 `i` 不可能是自除数,我们就直接跳出当前内部循环,不再继续检查 `i` 的其他位数。

这样做是为了提高代码的效率,如果我们在内部循环中发现 `i` 不可能是自除数,就没必要继续检查它的其他位数,可以直接放弃该数值,继续处理下一个数值。这样避免了不必要的计算,提高了代码的执行效率。

标签:right,python,num,728,整除,remainder,除数,left
From: https://www.cnblogs.com/10086upup/p/17603523.html

相关文章

  • Python | 判断语句、循环语句
    上一篇:Python|基础语法判断是程序最基础最核心的逻辑功能。1.布尔类型和比较运算符1.1布尔(bool)类型布尔(bool)表达现实生活中的逻辑,即真和假:True表示真;False表示假。True本质上是一个数字记作1,False记作01.1.1布尔类型字面量True表示真(是、肯定)False表示假(否......
  • python第三天
    python开发ide:pycharm,eclipse一、运算符1、算数运算符+-*/幂**余%求整数9//2=4判断字符是否在字符串里面in   notinname="阿拉斯加"if"文件"inname:print("ok")else:print("notok")  2、比较运算符==<><=>=!=不等于<......
  • [数据分析与可视化] Python绘制数据地图4-MovingPandas入门指北
    MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库,用于处理移动物体的轨迹数据。它提供了一组强大的工具,可以轻松地加载、分析和可视化移动物体的轨迹。通过使用MovingPandas,用户可以轻松地处理和分析移动对象数据,并从中提取有关行为、模式和趋势的见解。无论是处......
  • Python 将playwright 脚本打包exe
    1、需要将playwright版本下载,注意:如果不想执行exe出现cmd弹窗,则需要将playwright版本安装为1.29.0。参考:https://blog.csdn.net/tdl320721/article/details/1287372732、下载playwright对应的浏览器驱动,playwrightinstallchrome3、查看python环境目录内的  \Lib\site-......
  • Python开发实例(二)To-Do列表应用:创建一个简单的命令行应用,允许用户添加、删除和查看待
    defprint_todo_list(todo_list):ifnottodo_list:print("待办事项列表为空!")else:print("待办事项列表:")forindex,todoinenumerate(todo_list,1):print(f"{index}.{todo}")defadd_todo(todo_......
  • 【python_4】基础语法:字面量和注释!
    1.字面量的含义字面量:在代码中,被写下来的固定的值,称之为字面量。2.常见的字面量类型类型描述说明数字Number支持:整数int浮点数float复数complex布尔bool整数int,如10,-10浮点数float,如13.14,-13.14复数complex,如4+3j布尔bool,表达现实生活中的逻辑,即真和假,True表示真,False表示假。True......
  • python使用mqtt
    一、安装mqtt服务器安装对应的软件:https://www.emqx.io/zh/downloads推荐使用docker安装默认账号和密码:admin、public 二、编写代码消息发布程序importtimeimportjsonimportpsutilimportrandomfrompaho.mqttimportclientasmqtt_clientbroker='127.0.0.1......
  • 【银河麒麟】Python3.9的安装
    国产银河麒麟原装python3.5,版本较为落后,经过多次尝试+百度各种方法,现将安装python3.9的过程记录如下:1.安装依赖环境(打开终端)sudoaptupdatesudoapt-getinstallbuild-essentialzlib1g-devlibbz2-1.0libssl-devlibncurses5-devlibsqlite3-devlibreadline-devtk-de......
  • python教程 入门学习笔记 第5天 format函数拼接 两种打印方法 转义字符
    2)format函数拼接#format函数拼接s1="统计={0}{1}{2}".format("张三","工资",3400)#占位符{}中可以填写数字编号print(s1)s2="统计={}{}{}".format("李四","工资",4500)#用占位符{}拼接,占位符要与字符串数量一致print(s2)s3="统计={a}{b}{c}".forma......
  • python django中的权限控制
    权限控制基于form组件实现1.配置文件编写权限关系表有权限控制,意味着要登录,需要提前把登录页面放到白名单,在setting.py文件写入白名单内的路径不做访问控制和登录认证WHITE_URL=["/web/login/","/web/sms_login","web/sms_send","/web/logout/"]在setting.py文件写......