万卷网 > 题目详情
题型:编程题

数字黑洞

时间限制:1.0 s

内存限制:128.0 MB

问题描述

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

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

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

输入描述

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

输出描述

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


样例输入1

352

样例输出1

4

更新时间:2023-10-02 14:25:09 |
【知识点】 CCF—GESP Python二级

相似题推荐

单选题

下面的Python 代码执行后其输出是( )。

cnt = 0
for i in range(1, 5):
    for j in range(i):
        print(j, end = "#")
    break
else:
    print(i*j)
A.

0#0#1#0#1#2#0#1#2#3#12

B.

0#0#1#0#1#2#0#1#2#3#

C.

0#

D.

1#

2026-07-31
判断题

下列Python 代码执行后将输出1#4#9#16#16 。()

for i in range(1, 5):
    for j in range(1, i + 1):
        if i * j % 10 == 0:
            break
    else:
        print(i * j, end = "#")
else:
    print(i * j)
A.正确 B.错误
2026-07-31
判断题

下面的Python 代码执行将不会有输出,因为内层循环j 总是0 开始,i * j % 10 == 0 将会被满足,执行break,故而不会执行代码中的else 子句部分。()

for i in range(1, 10):
    for j in range(i):
        if i * j % 10 == 0:
            break
else:
    print(i*j)


A.正确 B.错误
2026-07-31
判断题

执行下面的Python 代码,其语句print(N) 将被执行0 次或极多次(即死循环)。()

N = input() 
while N :
    print(N)
A.正确 B.错误
2026-07-31
单选题

下面选择项中,与Python 表达式not (x > 5 and y <= 10)等价的是( )。

A.

x <= 5 and y > 10

B.

x > 5 or y <= 10

C.

x <= 5 or y > 10

D.

not x > 5 and not y <= 10

2026-07-31
公众号
客服 反馈
顶部