第一题:单位变换
问题:在计算机存储中,15.125GB是多少MB
GB = float(input('输入存储大小: '))
MB= GB*1024
print('%0.1f转换后的存储大小为%0.1f ' %(GB,MB))
第二题:约数个数
问题:1200000有多少个约数(只计算正约数)。
N=1200000
if __name__ == '__main__':
print(len([i for i in range(1,N+1) if N % i == 0]))
或
N=1200000
for i in range(N,N+1):
if N % i ==0:
print(i)
else:
False
或
count = 0
for i in range(1,1200001):
if 1200000%i == 0:
count +=1
print(count)
第三题:叶结点数
问题:一棵包含有2019个结点的二叉树,最多包含多少个叶结点?
第四题:数字9
问题:在1至2019中,有多少个数的数位中包含数字9?
注意,有的数中的数位中包含多个9,这个数只算一次。例如,1999这个数包含数字9,在计算时只是算一个数。
N = 2019
if __name__ == '__main__':
ans = len([s for s in [str(i) for i in range(9, N + 1)] if '9' in s])
print(ans)
或
count = 0
for i in range(1,2020):
s = str(i)
if '9' in s:
count += 1
print(count)
第五题:数位递增的数
问题:一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数位递增的数,而1024不是一个数位递增的数。
给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?
if __name__ == '__main__':
ans = 0
n = int(input())
for s in [str(i) for i in range(1, n + 1)]:
flag = True
for j in range(1, len(s)):
if s[j - 1] > s[j]:
flag = False
break
if flag:
ans += 1
print(ans)
或
def check(n):
ls = n.copy() #注意要用copy()函数来进行拷贝
ls.sort()
return ls == n
n = input()
count = 0
for i in range(1,eval(n)+1):
if check(list(str(i))):
count += 1
print(count)
第六题:递增三元组
问题:在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0 给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。
if __name__ == '__main__':
ans = 0
n = int(input().strip())
data = [int(x) for x in input().strip().split(' ')] # 转整数列表
len1 = len(data)
for j in range(1, len1 - 1):
hasSmall = False
hasBig = False
for i in range(j):
if data[i] < data[j]:
hasSmall = True
break
for k in range(j + 1, len1):
if data[j] < data[k]:
hasBig = True
break
if hasSmall and hasBig:
ans += 1
print(ans)
或
n = eval(input())
ls = input().split()
ls = [eval(i) for i in ls]
out = []
count = 0
for i in range(n-2):
for j in range(i+1,n-1):
for k in range(j+1,n):
if ls[i]<ls[j] and ls[j]<ls[k]:
count += 1
out.append(j)
break
print(len(set(out)))