第一題:機關變換
問題:在計算機存儲中,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<i<j<k<n+1 且 a[i]<a[j]<a[k],則稱 a[i], a[j], a[k] 為一組遞增三元組,a[j]為遞增三元組的中心。
給定一個數列,請問數列中有多少個元素可能是遞增三元組的中心。
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)))