代码:
·
·
N = input()print(len(N))
代码:
·
·
M = int(input())print(M % 2)
代码:
·
·
·
lst = list(map(int, input().split(",")))c = (sum(lst)-max(lst)-min(lst))/(len(lst)-2)print("%.2f" % c)
分析:由于是奇数,所以个位先选,到百位(不能为0),然后到十位。
代码:
·
·
·
·
·
·
·
·
·
·
·
N = int(input())lst = list(range(N+1)) #构造数字列表count = 0 #统计数for i in lst[1::2]: #个位 nlst=lst.copy() #先浅拷贝 nlst.remove(i) #再移出该元素 for j in nlst[1:]: #百位,与个位相似 nlst2=nlst.copy() nlst2.remove(j) count += len(nlst2) #剩下的都是十位print(count)
分析:如果M为奇数,那么中间一位是独立的,即实际是(M+1)//2位排列,首位不为0;如果M为偶数,则是M//2位排列,首位不为0。排列的元素是0到9个数字。
代码:
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M = int(input())if M % 2 == 0: N = M // 2 #实际排列位数 type=Trueelse: N = (M+1)//2 type=Falsecount = 0 #统计数count99 = 0 #99统计数#递归统计出首位外其它位def other(n, sn): global count,count99 if n == 1: #如果是最后要选的一位 count += 10 for i in range(10): if i == 9 and type: #偶数,中间两个是99. count99 += 1 continue nsn = sn + str(i) #构建元素 if "99" in nsn: #检查99 count99 += 1 return for i in range(n): for j in range(10): nsn = sn + str(j) other(n-1,nsn) #递归选择下一位for i in range(1,10): #最高位不可以为0 s = str(i) other(N-1, s)print(count)print(count99)