实验8
证明6174猜想
import random
while True:
str1=str(random.randrange(1000,10000))#随机取四位数
print(str1)
lst=list(str1)
set_lst=set(lst)
if len(set_lst) == len(lst):
break
times=0#计次
while True:
max1=sorted(str1,reverse = True)#正序排列
min1=sorted(str1,reverse = False)#倒序排列
max1=int("".join(list(map(str,max1))))#格式转换为int
min1=int("".join(list(map(str,min1))))
A=max1-min1#做差
str1=str(A)#格式转换
times=times+1#自增
print(times)
if A==6174:
break
if times<=7:#次数小于7次则规律正确
print(True)
else:
print(False)
random.randrange(起,止,步长) 前闭后开
str()强制格式转换为字符串
join()将列表链接成字符串
sorted(序列,reverse=布尔值)排序 True正序 False 逆序
map(函数,序列)按照函数来计算序列 并映射
实验9
def dt(n):#递推
a=1
b=2
c=4
for i in range(n-3):
c,b,a=a+b+c,c,b
return c
print(dt(15))
def ddui(n):#递归
first3={1:1,2:2,3:4}
if n in first3.keys():
return first3[n]
else:
return ddui(n-1)+\
ddui(n-2)+\
ddui(n-3)
print(ddui(15))
keys()查询字典中键