【趣味学算法】11_黑洞数

注: 本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正

黑洞数又称陷阱数,是指任何一个数字不全相同的整数,在经过有限次“重排求差”操作后,总会得到某一个或某一些数,这些数即为黑洞数。

“重排求差”操作是将组成一个数的各位数字重排,将得到的最大数减去最小数
例如,207的重排求差操作序列是:720-027=693, 963-369=594, 954-459=495,此时再进行重排求差操作将不会发生改变。
再用208计算一次:820-028=792, 972- 279=693,963-369=594,954-459=495,也是停止到495,所以495是三位黑洞数。
根据上面的的操作可以得出对于任意一个数字不完全相同的整数,最后结果总会陷入黑洞圈或黑洞数里,最后结果一旦为黑洞数之后无论重复多少次重排求差结果都是一样的,因此可以通过判断连续的两次结果是否相等来作为黑洞数的依据。

那么要找出所有三位的黑洞数应该如何实现呢?

代码实现思路如下:

  1. 将任意三位数拆分
  2. 拆分后的数重新组合得到最大值和最小值并求差
  3. 将差值结果暂存到临时变量中
  4. 将差值继续拆分重组求差
  5. 判断当前差值与上一差值是否相等,相等结束,不相等循环以上步骤

代码实现如下:

def Rearrange_the_difference(i):a = i//100b = i%100//10c = i%10if a < b:t = aa = bb = tif b < c:t = bb = cc = tif a < c:t = aa = cc = tmax = a*100+b*10+cmin =c*100+b*10+aprint('max={},min={}'.format(max,min))return max-minif __name__ == '__main__':h = 0i = int(input('请输入一个各位不完全相同三位整数:'))h = Rearrange_the_difference(i)while h > 0:last = hh = Rearrange_the_difference(h)if h == last:print('黑洞数:{}'.format(h))break

测试结果如下

请输入一个各位不完全相同三位整数:709
max=790,min=97
max=963,min=369
max=954,min=459
max=954,min=459
黑洞数:495

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker之镜像与容器的相关操作

目录 一、Docker镜像 搜索镜像 下载镜像 查看宿主机上的镜像 删除镜像 二、Docker容器 创建容器 查看容器 启停容器 删除容器 进入容器 创建/启动/进入容器 退出容器 查看容器内部信息 一、Docker镜像 Docker 运行容器前需要本地存在对应的镜像&#xff0c; 如…

每日更新5个Python小技能 | 第九期

大家好&#xff01;欢迎阅读每日更新的Python小技能系列&#xff0c;今天是第九期。在这个系列中&#xff0c;我将每天分享5个高级的Python小技巧&#xff0c;帮助大家进一步提升编程技能。让我们开始吧&#xff01; 1. 使用生成器提高内存效率 生成器是 Python 中强大而高效…

mysql 连接查询和子查询

学习了mysql基本查询&#xff0c; 接着学习连接查询和子查询。 4&#xff0c;连接查询 连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询&#xff0c;主要包括内连接、外连接等。通过连接运算符可以实现多个表查询。在关系数据库管理系统中&#xff0c;表建…

使用 Docker Compose 部署邮件服务器

使用 Docker Compose 部署邮件服务器 很多时候为了方便&#xff0c; 我们都直接使用第三方邮箱进行收发邮件。 但第三方邮箱有些要求定期修改密码&#xff0c;有些限制发邮箱的次数&#xff0c; 对于一些个人和企业来说&#xff0c; 有自己的域名和服务器为什么不自己搭建一个邮…

Android:身份证识别功能实现

说明&#xff1a; 此文使用华为SDK、百度SDK、百度在线API三种方式实现。 一、使用华为SDK实现身份证识别&#xff1a; 说明&#xff1a;免费&#xff0c;不需要联网。 1.AndroidManifest.xml添加权限&#xff1a;<uses-permission android:name"android.permissio…

GESP Python编程五级认证真题 2024年3月

Python 五级 2024 年 03 月 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 下面流程图在yr输入2024时&#xff0c;可以判定yr代表闰年&#xff0c;并输出 2月是29天 &#xff0c;则图中菱形框中应该填入&#xff08; &#xff09;。 A. (yr % 400 0…

Leetcode 506. 相对名次

给你一个长度为 n 的整数数组 score &#xff0c;其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。 运动员将根据得分 决定名次 &#xff0c;其中名次第 1 的运动员得分最高&#xff0c;名次第 2 的运动员得分第 2 高&#xff0c;依此类推。运动员的名次…

Leetcode刷题笔记——多维动态规划篇

Leetcode刷题笔记——多维动态规划篇 第一题:最小路径和 Leetcode64&#xff1a;最小路径和&#xff1a;中等题 &#xff08;详情点击链接见原题&#xff09; 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的…

稀碎从零算法笔记Day36-LeetCode:H指数

有点绕的一个题&#xff0c;题目描述的有点奇怪&#xff08;可以看下英文&#xff1f;&#xff09; 题型&#xff1a;数组、模拟 链接&#xff1a;274. H 指数 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个整数数组 citations &am…

SpringBoot登录校验(四)过滤器Filter

JWT令牌生成后&#xff0c;客户端发的请求头中会带有JWT令牌&#xff0c;服务端需要校验每个请求的令牌&#xff0c;如果在每个controller方法中添加校验模块&#xff0c;则十分复杂且冗余&#xff0c;所以引入统一拦截模块&#xff0c;将请求拦截下来并做校验&#xff0c;这块…

【算法】两数之和(暴力求解+哈希表)

本题来源---《两数之和》。 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里…

Golang | Leetcode Golang题解之第12题整数转罗马数字

题解&#xff1a; 题解&#xff1a; var (thousands []string{"", "M", "MM", "MMM"}hundreds []string{"", "C", "CC", "CCC", "CD", "D", "DC", "…

2024.3.31力扣每日一题——验证二叉树的前序序列化

2024.3.31 题目来源我的题解方法一 计数方法二 栈 题目来源 力扣每日一题&#xff1b;题序&#xff1a;331 我的题解 方法一 计数 当只有一个节点并且是空节点&#xff0c;则表示是空树&#xff0c;是一个正确的序列化正确的序列化节点数必然是偶数个&#xff0c;若不是偶数…

UNITY实战进阶-BatchRendererGroup+Jobs+Burst+RVO2+GPUAnimation 实现万人团战(一)

研究思路&#xff1a;GPUAnimation把动画放入GPU中处理&#xff0c;BatchRendererGroup进行动态批量渲染处理&#xff0c;JobsBurst进行多线程处理逻辑&#xff08;移动、攻击等&#xff09;&#xff0c;RVO2采用Jobs的寻路导航。 准备工作&#xff1a; Editor > Project S…

VMware虚拟机(Rocky9.3)硬盘扩容详细图文教程

参考<<鸟哥的Linux>>以及VMware虚拟机硬盘扩容详细图文教程 原因: 用户空间不足,且系统是用LVM&#xff08;logical volume manager&#xff09;进行分区 df -h #查看/home目录下磁盘容量不足磁盘扩容步骤 关闭虚拟机,选择编辑虚拟机, 点击硬盘,再点击扩容 这个…

Redis安装说明

Redis安装说明 大多数企业都是基于Linux服务器来部署项目&#xff0c;而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis. 此处选择的Linux版本为CentOS 7. Redis的官方网站地址&#xff1a;https://redis.io/ 1.单机安装Redis 1.1.…

Mysql底层原理十一:Mvcc

为什么要mvcc&#xff1f; 提高并发度&#xff0c;如果读和写都是通过加锁的方式&#xff0c;并发肯定上不来&#xff0c;通过mvcc来实现写通过加锁&#xff0c;读通过mvcc readView机制 3.9.1 Undo版本链 再重复一遍&#xff0c;页面中的记录存放在用户表空间的数据页中&a…

VLAN 与 VXLAN:一个字母之差,到底两者有什么区别?

来源&#xff1a;网络技术联盟站 网络虚拟化技术在现代网络架构中扮演着至关重要的角色&#xff0c;而其中的两个重要代表——虚拟局域网&#xff08;VLAN&#xff09;和虚拟扩展局域网&#xff08;VXLAN&#xff09;——在网络管理和扩展性方面发挥着独特的作用。本文将深入研…

加拿大公司注册好处 注册加拿大公司条件 注册加拿大公司流程

一、加拿大公司注册优势 1、开办成本低&#xff1a;加拿大的注册费用相对较低&#xff0c;注册一家公司所需资金较少。 2、法律保护完善&#xff1a;加拿大的法律体系健全&#xff0c;对企业的合法权益给予充分保护。 3、政 府扶持政策&#xff1a;加拿大政 府鼓励企业创新发…

LeetCode-1483. 树节点的第 K 个祖先【树 深度优先搜索 广度优先搜索 设计 二分查找 动态规划】

LeetCode-1483. 树节点的第 K 个祖先【树 深度优先搜索 广度优先搜索 设计 二分查找 动态规划】 题目描述&#xff1a;解题思路一&#xff1a;暴力解法会超时&#xff01;【一级一级往上跳&#xff0c;效率太低】解题思路二&#xff1a;倍增&#xff0c;利用二进制运算&#xf…