|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输入一个不全相等的四位数,将它分解为四个数,组成最大数和最小数,用最大数减去最小数,得到一个结果,此结果继续分解成四个数,再组成最大数和最小数,用最大数减去最小数,得到一个结果,一直下去,直到减出来的结果为6174为止,求最后结果得到6174的步长。
例如:输入1234,排列后最大数为4321,最小数1234,4321-1234=3087;得到的结果3087再排列最大数为8730,最小数0378,8730-0378=8352;继续:8532-2358=6174,此时输出的步长为3。
要求程序的输出结果如下:
运行程序后:
请输入一个四位数:1234
步长=3
第二次运行程序后:
请输入一个四位数:2222
不能四位相同,请重新输入一个四位数:34
不是四位数:请重新输入一个四位数:1234
步长=3
注意:
1. 若输入别的数据,输出的步长应该在1~7之间。
2. 程序一样的,或者思路相同,两者无效,将被判零分。
3. 不能使用网络上的程序,必须按照要求的输出结果输出。
4. 尽自己的能力做多少,算多少,必须是自己独立完成的。
5. 不能使用后面的函数和列表。
本帖最后由 sunrise085 于 2020-10-21 14:48 编辑
- prom="请输入一个四位数:"
- while True:
- num=input(prom)
- if num.isdigit():
- if int(num) in range(1000,10000):
- if len(set(num))==1:
- prom="不能四位相同,请重新输入一个四位数:"
- continue
- break
- else:
- prom="不是四位数:请重新输入一个四位数:"
- else:
- prom="请输入一个四位数:"
- step=0
- while True:
- maxnum=''.join(sorted(num,reverse=True))
- minnum=''.join(sorted(num))
- num=int(maxnum)-int(minnum)
- step+=1
- if num==6174:
- break
- num=str(num)
- if len(num)<4:
- num+='0'*(4-len(num))
- print("步长=",step)
复制代码
|
|