python"># 求三位数的组合最大值defthree_max(a, b, c):# a、b、c分别对应百位、十位、个位if a < b:# 如果a<b,则将变量a、b的值互换
t = a
a = b
b = t
if a < c:
t = a
a = c
c = t
if b < c:
t = b
b = c
c = t
return a*100+ b*10+ c
python"># 求黑洞数defblack_number(max,min):
j =max-min
k =0while k <min:# k控制循环次数
h = j # h记录上一次最大值与最小值的差
hun = j //100# 百位
ten = j %100//10# 十位
bit = j %10# 个位max= three_max(hun, ten, bit)# 最大值min= three_min(hun, ten, bit)# 最小值
j =max-minif j == h:# 最后两次差相等时,差即为所求黑洞数print("%d "% j)break# 跳出循环
k +=1
6.完整的程序
完整的程序如下:
python">%%time
# 黑洞数# 求三位数的组合最大值defthree_max(a, b, c):# a,b,c分别对应百位十位个位if a < b:# 如果a<b,将变量a、b的值互换
t = a
a = b
b = t
if a < c:
t = a
a = c
c = t
if b < c:
t = b
b = c
c = t
return a*100+ b*10+ c
#求三位数的组合最小值defthree_min(a, b, c):# a,b,c分别对应百位十位个位if a < b:# 如果a<b,将变量a、b的值互换
t = a
a = b
b = t
if a < c:
t = a
a = c
c = t
if b < c:
t = b
b = c
c = t
return c*100+ b*10+ a
# 求黑洞数defblack_number(max,min):
j =max-min
k =0while k <min:# k控制循环次数
h = j # h记录上一次最大值与最小值的差
hun = j //100# 百位
ten = j %100//10# 十位
bit = j %10# 个位max= three_max(hun, ten, bit)# 最大值min= three_min(hun, ten, bit)# 最小值
j =max-minif j == h:# 最后两次差相等时,差即为所求黑洞数print("%d "% j)break# 跳出循环
k +=1if __name__ =="__main__":
i =int(input("请输入一个三位整数:"))print(f'输入的数字为:{i}')
hun = i //100# 百位
ten = i %100//10# 十位
bit = i %10# 个位max= three_max(hun, ten, bit)# 最大值min= three_min(hun, ten, bit)# 最小值print("max = ",max)print("min = ",min)
black_number(max,min)
输入的数字为:108
max = 810
min = 18
495
CPU times: user 21.2 ms, sys: 10 ms, total: 31.2 ms
Wall time: 2.94 s