i=1;arr=[]
def code(num):
if 2020%num!=0:
a=str(num)
if a[-1]=="9" or a[-1]=="7" or a[-1]=="3" or a[-1]=="1":#做筛选不能写错
return num
else:
return -1
else:
return -1
while(i<=2020):
if code(i)!=-1:
arr.append(i)
i+=1
else:
i+=1
print(arr)
print(len(arr))
自我感觉: 很麻烦,第一题而已,但可惜我数学不好。。
我的构思: 记得当时想一个一个加,但后来又想想,有ascii码还加个毛。。直接ord(‘x’)
print(ord('A')) #return 66
print(ord('Q'))#return 81
自我感觉:这是最好做的一道题。。。
第三题:
我的构思: 记得当时又没看懂题目,不知道为什么,看个题很费力。还觉得为啥从27就直接到702列了?
想了想 一个数遍历26,26**26刚好676个数。。
然后他问第2021个数是啥?
我的思路:他长度肯定为3,当第一个数为A时,后面就要遍历676个数,所以第一个数676*2+702=2054>2021,值为B,
dir=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','S','Y','Z']
arr=[]
i='A';j='B'
ij=i+j
print(ij)
for i in dir:
for j in dir:
for k in dir:
ijk=i+j+k
arr.append(ijk)
print(arr[2020-702])
自我感觉: 只是觉得数学菜啊,这样一道题写20来分钟,后面6-9压力很大的
第四题是一道二叉树的题,记得当时随便填了个数,忘记截图了,惨败
第五题
我的构思:首先当时做的时候还是没思路,不知道是太紧张还是怎么了。。
还有后面那个1<=v
我的思路:a[2]的值是用a[1]算的,a[3]的值是用a[2]的值算的;所以用一个数组存a[2]的值,就能算出a[3]的值.
arr=[]
arr.append(1160);p=2021;i=1
while(p%arr[i-1]!=0):
arr.append(p%arr[i-1])
i+=1
print(arr)
print(len(arr))