Python:每日一题 156:神奇的6174

6174是个神奇的数字,一个任意的四位正整数(全相同的除外,如1111)。将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174。
现在编程验证此现象,输入一个每位数不完全相同的四位正整数,给出计算过程,最终得到6174,例如:
输入2687
打印
8762-2678=6084
8640-468=8172
8721-1278=7443
7443-3447=3996
9963-3699=6264
6642-2466=4176
7641-1467=6174

注意如果数字是7767则
7776-6777=999
9990-999=8991

这里是9990-999,而不是999-999,即第一个数如果不是4位要在后面补0到四位。


Python源码:

num = int(input())
c = num
while c != 6174:
    digits = list(str(c))
    digits.sort(reverse=True)
    if len(digits) < 4:
        digits.append('0')
    a = int(''.join(digits))
    digits.reverse()
    b = int(''.join(digits))
    c = a - b
    print("%d - %d = %d" % (a, b, c))

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值