python-数字黑洞

题目描述

给定一个三位数,要求各位不能相同。例如,352是符合要求的,112是不符合要求的。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程。神奇的是,最终一定会得到495!

试试看,重新排列352,得到的最大数为532,最小数为235,它们的差是297;变换297,得到972−279=693;变换693,963−369=594;变换594,954−459=495。因此,经过4次变换得到了495。

现在,输入的三位数,你能通过编程得出,这个三位数经过多少次变换能够得到495吗?
输入:

输入一行,包含一个符合要求的三位数N。
输出:

输出一行,包含一个整数C,表示经过C 次变换得到 495。
样例输入1

352

样例输出1

4

来源/分类(难度系数:一星)

++完整代码如下:++

a=int(input())

i=0

while a!=495:

b=a%10

c=a//10%10

d=a//100%10

e=b*100+c*10+d

f=b*100+d*10+c

g=c*100+b*10+d

h=c*100+d*10+b

m=d*100+b*10+c

n=d*100+c*10+b

k=e,f,g,h,m,n

a=max(k)-min(k)

i=i+1

print(i)

++代码解释:++

"a=int(input()) ",让用户输入任意三位数。

"i=0

while a!=495:

b=a%10

c=a//10%10

d=a//100%10

e=b*100+c*10+d

f=b*100+d*10+c

g=c*100+b*10+d

h=c*100+d*10+b

m=d*100+b*10+c

n=d*100+c*10+b

k=e,f,g,h,m,n

a=max(k)-min(k)

i=i+1 ",令i等于0;当a不等于495时,先求出a的个,十,百位数b,c,d。然后将这三个数字进行随机组合,并依次将其存入列表k中。找出列表中的最大数和最小数,并用最大数减去最小数,将差值赋给a。每循环一次,i值就加1;如此循环,直至a=495。

"print(i) ",打印i最终值,即循环的次数。

++运行效果展示:++

++++

++(声明:以上内容均为原创)++

相关推荐
实名上网宋凯宣44 分钟前
Django
后端·python·django
如若1232 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
砚底藏山河3 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新3 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
薛定谔的猫-菜鸟程序员4 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
夜不会漫长5 小时前
C++:红黑树
数据结构·算法
Ramble_Naylor6 小时前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
Allen_LVyingbo6 小时前
NVIDIA CUDA Tile 在医疗计算中的算子形式化、算法重构与内核实现
大数据·python·算法·重构·知识图谱·健康医疗·数据库架构
云和数据.ChenGuang7 小时前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
冻柠檬飞冰走茶8 小时前
PTA刷题集之Airline Routes(C语言实现)
c语言·开发语言·数据结构·算法