文章目錄
- 1 選擇題(每題2分,共20分)
- 2 簡答題(每題3分,共30分)
- 3 應用題(每題5分,共50分)
- 3.1 龐大的牛群
- 3.2 古堡之門
- 3.3 二維串列轉置
- 3.4 用print函式畫圓
- 3.5 約瑟夫環
- 3.6 撲克牌中的順子
- 3.7 青蛙上臺階
- 3.8 24點游戲
- 3.9 背包問題
- 3.10 空間直線相交問題
- 參考答案
- 1 選擇題
- 2 簡答題
- 3 應用題
- 3.1 龐大的牛群
- 3.2 古堡之門
- 3.3 二維串列轉置
- 3.4 用print函式畫圓
- 3.5 約瑟夫環
- 3.6 撲克牌中的順子
- 3.7 青蛙上臺階
- 3.8 24點游戲
- 3.9 背包問題
- 3.10 空間直線相交問題
不要當真,這只是一套模仿英語四六考試的Python編程能力自測題,完全基于Python基礎語法和標準模塊,僅最后一題,用到了NumPy模塊,參考答案附于文末,讀者可自行核對,如果得分超過60分,相當于英語四級水平;得分超過80分,相當于英語六級水平,
1 選擇題(每題2分,共20分)
1.1 關于C、C++、C#、Python和Java等編程語言的發展史,下面哪一種說法是錯誤的?
- A C是其中最早古老的
- B C#是其中最年輕的
- C C++比Java的歷史更久
- D Java比Python的歷史更久
1.2 以下四人中誰被稱為“Python之父”?
- A 詹姆斯·高斯林(James Gosling)
- B 林納斯·托瓦茲(Linus Torvalds)
- C 吉多·范羅蘇姆(Guido van Rossum)
- D 廖雪峰
1.3 串列a=[1,2,3,4,5],print(a[::-2])的輸出為(),
- A [1,2,3]
- B [4,5]
- C [5,3,1]
- D 顯示例外資訊
1.4 串列a=[1,2,3,4,5],執行a[2:4]=[9]后,print(a)的輸出為(),
- A [1,2,9,9,5]
- B [1,2,9,5]
- C [1,2,[9],5]
- D 顯示例外資訊
1.5 字典d={'name':'xufive'},下面哪一種寫法是錯誤的?
- A d[‘name’]
- B d.name
- C d.get(‘name’)
- D d.get(‘age’)
1.6 元組a=(1,2),b=(3,4),下面哪一種寫法是錯誤的?
- A a[0] = b[1]
- B a[0] == b[1]
- C a+b
- D (*a, *b)
1.7 字串s='xyz',下面哪一種寫法是錯誤的?
- A list(s)
- B set(s)
- C tuple(s)
- D dict(s)
1.8 應用三元運算式的陳述句中,下面哪一種寫法是錯誤的?
- A [i if i%2 else i*2 for i in range(5)]
- B [i if i%2 for i in range(5)]
- C [i for i in range(5) if i%2]
- D x = 3 if 3*7==21 else 4
1.9 執行下面的陳述句,回傳結果是(),
[True, 5, 0, False, None, '0', '', 'False'].count(False)
- A 1
- B 2
- C 3
- D 4
1.10 執行下面的陳述句,回傳結果是(),
''.join(map(lambda s:s*2, 'abc'))
- A ‘abcabc’
- B [‘aa’, ‘bb’, ‘cc’]
- C [‘abc’, ‘abc’]
- D ‘aabbcc’
2 簡答題(每題3分,共30分)
2.1 計算十六進制數ab和二進制數1100的和,以十進制形式顯示結果,
2.2 生成從A到Z的字串,
2.3 從鍵盤輸入變數名和變數值(以等號分隔),并創建該變數,
2.4 回傳給定字串中出現頻次最高的字符,
2.5 如果一個整數的平方的右側還是這個整數,則該整數被稱為同構數,判斷一個整數是否是同構數,
2.6 串列內,若某個元素的索引號等于這個元素本身,則稱該元素為幸運數,找出給定串列內的幸運數,
2.7 判斷一個數是否為2的整數次冪,
2.8 運行如下代碼,請寫出輸出結果,,
3 and 4 * 5 or 6
2.9 運行如下代碼,請寫出輸出結果,
z = zip('xyz', (1,2,3))
for i in range(2):
for k, v in z:
print('%s=%d'%(k,v))
2.10 運行如下代碼,請寫出最后一行輸出,
import threading
import time
def func():
for i in range(5):
print(i)
time.sleep(1)
threading.Thread(target=func).start()
time.sleep(3)
print('程式結束')
3 應用題(每題5分,共50分)
3.1 龐大的牛群
假定你現在養了一頭母牛,它每年元旦都生一頭小母牛,每頭小母牛從四周歲開始,每年元旦也生一頭小母牛,不考慮牛的壽命和生育年限,過了n個元旦之后,你總共擁有多少頭牛?
3.2 古堡之門
福爾摩斯到某古堡探險,看到門上寫著一個奇怪的算式:
ABCDE × G = EDCBA
他對華生說:“ABCDE應該代表不同的數字,G也代表某個數字!”
華生:“我猜也是!”
于是,兩人沉默了好久,還是沒有算出合適的結果來,
請利用計算機的優勢,找到破解的答案,
3.3 二維串列轉置
嚴格講,Python的串列并沒有維度的概念,這里說的二維串列是指類似下面這樣的串列,
[ [1, 2, 3],
[4, 5, 6],
[7, 8, 9] ]
請實作二維串列的轉置(行列互換,首行變首列,尾行變尾列,如下所示),
[ [1, 4, 7],
[2, 5, 8],
[3, 6, 9] ]
3.4 用print函式畫圓
使用print()函式列印星號,形成一個近似的圓,考慮到在文本顯示模式下字符的寬高不相等,以及字符水平間距和行間距不相等等因素,可以在水平方向重復字符以保持合適的看高比例,
3.5 約瑟夫環
從1開始的n個連續整數順時針組成n個元素的環形佇列,從元素1開始沿順時針方向計數,將第m個元素剔除佇列,緊接著從下一個元素重新開始計數,將第m個元素剔除佇列……直至佇列剩余一個元素,并回傳該元素的值,
3.6 撲克牌中的順子
從撲克牌中隨機抽5張牌,判斷是不是順子,即這5張牌是不是連續的,2~10為數字本身,A為1,J為11,Q為12,K為13,大小王用0表示,可代表任意數字,
3.7 青蛙上臺階
青蛙每次至少可以跳上一層臺階,最多可以跳上兩個臺階,計算青蛙跳上N層臺階總共有多少種方式,
3.8 24點游戲
幾乎每個人都玩過24點游戲,規則也很簡單:任意給出4個數字(視難度不同,一般是10以內或13以內的數字,允許重復),每個數字只能且必須使用1次,利用加減乘除四則運算,使得計算結果為24,例如,4個數字分別為5,5,5,1,則有(5-1/5)*5 = 24,請用代碼解決24點問題,若有解,則列印解,若無解,則列印無解,
3.9 背包問題
在一款英雄對戰游戲中,玩家擁有m件裝備和n位英雄,他可以給每一位英雄分配0件或多件裝備,而不同的英雄擁有不同數目的裝備時將獲得不同的攻擊力,玩家如何分配這m件裝備,可以使得n個英雄獲得的攻擊力的和最大?以玩家擁有5件裝備和3位英雄為例,串列p共有3行6列,對應著3位英雄分別擁有從0到5件裝備時的攻擊力,
3.10 空間直線相交問題
ABCD是歐氏空間中不重合的四個點,判斷過點AB的直線和過點CD的直線是否相交,
參考答案
1 選擇題
BCCBBADBBD
2 簡答題
2.1 計算十六進制數ab和二進制數1100的和,以十進制形式顯示結果,
- 參考答案1
>>> 0xab + 0b1100
183
- 參考答案2
>>> int('0xab', base=16) + int('0b1100', base=2)
183
2.2 生成從A到Z的字串,
- 參考答案
>>> ''.join([chr(ord('A')+i) for i in range(26)])
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
2.3 從鍵盤輸入變數名和變數值(以等號分隔),并創建該變數,
- 參考答案
>>> cmd = input('請變數名和變數值(以等號分隔):')
請變數名和變數值(以等號分隔):x=5
>>> exec(cmd)
>>> x
5
2.4 回傳給定字串中出現頻次最高的字符,
- 參考答案
>>> s = 'erwerflkfjsfldkfberwefrasdafsasfdadfasd'
>>> max(set(s), key=s.count)
'f'
2.5 如果一個整數的平方的右側還是這個整數,則該整數被稱為同構數,判斷一個整數是否是同構數,
- 參考答案
def is_isomo(n):
return str(n*n)[-len(str(n)):] == str(n)
>>> is_isomo(5)
True
這段代碼中兩次使用str(n),效率一定會打折,追求完美的同學肯定無法接受,下面的代碼使用了海象符號(Py3.8及更高版本支持),可以完美地解決這個問題,
def is_isomo(n):
return str(n*n)[-len((s:=str(n))):] == s
>>> is_isomo(6)
True
2.6 串列內,若某個元素的索引號等于這個元素本身,則稱該元素為幸運數,找出給定串列內的幸運數,
- 參考答案
寫成下面這樣,看起來沒有問題,但若存在重復元素,則可能導致結果錯誤,
>>> def find_lucky(arr):
return list(filter(lambda x:x==arr.index(x), arr))
>>> find_lucky([1, 1, 2, 5])
[2]
這樣寫才是正確的,
>>> def find_lucky(arr):
return [item[1] for item in filter(lambda x:x[0]==x[1], enumerate(arr))]
>>> find_lucky([1, 1, 2, 5])
[1, 2]
2.7 判斷一個數是否為2的整數次冪,
- 參考答案
2的整數次冪,寫成二進制一定是高位為1其余為0,利用這個特征,很容易判斷一個數是否是2的整數次冪,
>>> def check_pow(num):
return num > 0 and num & num-1 == 0
>>> check_pow(256)
True
2.8 運行如下代碼,請寫出輸出結果,,
3 and 4 * 5 or 6
- 參考答案
20
2.9 運行如下代碼,請寫出輸出結果,
z = zip('xyz', (1,2,3))
for i in range(2):
for k, v in z:
print('%s=%d'%(k,v))
- 參考答案
x=1
y=2
z=3
2.10 運行如下代碼,請寫出最后一行輸出,
import threading
import time
def func():
for i in range(5):
print(i)
time.sleep(1)
threading.Thread(target=func).start()
time.sleep(3)
print('程式結束')
- 參考答案
4
3 應用題
3.1 龐大的牛群
假定你現在養了一頭母牛,它每年元旦都生一頭小母牛,每頭小母牛從四周歲開始,每年元旦也生一頭小母牛,不考慮牛的壽命和生育年限,過了n個元旦之后,你總共擁有多少頭牛?
- 參考答案1(5分)
從第5個元旦開始,每年新增的小牛數量是4年前的母牛總數,因此過了n個元旦之后牛的數量,等于4年前的牛的數量,加上上一個年的牛的數量,
>>> def cows(n):
if n < 4:
return n+1
return cows(n-1) + cows(n-4)
>>> cows(5)
7
>>> cows(10)
36
>>> cows(20)
907
- 參考答案2(5分)
遞回雖然簡潔,但未必是最佳選擇,本題的四級參考答案是一個非線性遞回,復雜度為遞回深度的平方,效率很低,其實,同樣的思路,不用遞回實作的話,速度就會快很多,只是代碼沒有遞回那么優雅,
>>> def cows(n):
if n < 4:
return n+1
result = [1,2,3,4]
for i in range(4, n+1):
result.append(result[0]+result[-1])
result = result[1:]
return result[-1]
>>> cows(5)
7
>>> cows(10)
36
>>> cows(20)
907
3.2 古堡之門
福爾摩斯到某古堡探險,看到門上寫著一個奇怪的算式:
ABCDE × G = EDCBA
他對華生說:“ABCDE應該代表不同的數字,G也代表某個數字!”
華生:“我猜也是!”
于是,兩人沉默了好久,還是沒有算出合適的結果來,
請利用計算機的優勢,找到破解的答案,
- 參考答案1(3分)
中規中矩的寫法,代碼結構存在改進空間,
>>> def cbble():
for i in range(10000, 100000):
a, quotient = divmod(i, 10000)
b, quotient = divmod(quotient, 1000)
c, quotient = divmod(quotient, 100)
d, e = divmod(quotient, 10)
parts =set([a,b,c,d,e])
if len(parts) == 5:
for j in range(1, 10):
k = 10000*e + 1000*d + 100*c + 10*b +a
if j not in parts and i*j == k:
print('%d x %d = %d'%(i, j, k))
break
>>> cbble()
21978 x 4 = 87912
- 參考答案2(5分)
追求結構的優美甚于追求更高的效率,盡管不是最佳選擇,但對于此問題卻是合適的,
>>> def cbble():
for i in range(10000, 100000):
a,b,c,d,e = map(int, str(i))
parts =set([a,b,c,d,e])
if len(parts) == 5:
k = 10000*e + 1000*d + 100*c + 10*b +a
for j in range(1, 10):
if j not in parts and i*j == k:
return('%d x %d = %d'%(i, j, k))
return '此題無解!'
>>> cbble()
'21978 x 4 = 87912'
3.3 二維串列轉置
嚴格講,Python的串列并沒有維度的概念,這里說的二維串列是指類似下面這樣的串列,
[ [1, 2, 3],
[4, 5, 6],
[7, 8, 9] ]
請實作二維串列的轉置(行列互換,首行變首列,尾行變尾列,如下所示),
[ [1, 4, 7],
[2, 5, 8],
[3, 6, 9] ]
- 參考答案1(3分)
不考慮檢查串列是否滿足轉置的條件(串列每個元素都是長度相等的串列),初級程式員根據第一直覺寫出來的代碼幾乎都是這樣的,
>>> def transpose(arr):
result = list()
for j in range(len(arr[0])):
result.append(list())
for i in range(len(arr)):
result[j].append(arr[i][j])
return result
>>> transpose([[1,2,3], [4,5,6], [7,8,9]])
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
- 參考答案2(5分)
作為中高級程式員必然掌握使用一顆星(*)和兩顆星(**)的魔法,內置函式用起來更是得心應手,
>>> def transpose(arr):
return list(zip(*arr))
>>> transpose([[1,2,3], [4,5,6], [7,8,9]])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
3.4 用print函式畫圓
使用print()函式列印星號,形成一個近似的圓,考慮到在文本顯示模式下字符的寬高不相等,以及字符水平間距和行間距不相等等因素,可以在水平方向重復字符以保持合適的看高比例,
- 參考答案(5分)
優秀的程式員數學至少要及格才行,畫圓,得先計算出圓上個點的位置,通常要借助于引數方程,比如,令角度變數theta從0°變到360°,對應每個theta,圓上點坐標為:
x = R * cos(theta)
y = R * sin(theta)
理解了這個思路,下面的代碼就很容易看懂了,三角函式來自Python的標準模塊math,該模塊還包括度和弧度互轉等很多數學函式,代碼中的
>>> import math
>>> def print_circle(r, k): # r為半徑,k為寬高比矯正系數
theta = range(0,360,5)
x = [round(r*math.cos(math.radians(i))+r) for i in theta]
y = [round(r*math.sin(math.radians(i))+r) for i in theta]
dots = set(zip(x,y))
for i in range(2*r+1):
for j in range(2*r+1):
if (i,j) in dots:
print('*'*k, sep='', end='')
else:
print(' '*k, sep='', end='')
print()
>>> print_circle(5, 3)
***************
****** ******
*** ***
*** ******
*** ***
*** ***
*** ***
*** ***
*** ***
****** ******
***************
3.5 約瑟夫環
從1開始的n個連續整數順時針組成n個元素的環形佇列,從元素1開始沿順時針方向計數,將第m個元素剔除佇列,緊接著從下一個元素重新開始計數,將第m個元素剔除佇列……直至佇列剩余一個元素,并回傳該元素的值,
- 參考答案(5分)
>>> def joseph(n, m):
queue, start = list(range(1, n+1)), 0
while len(queue) > 1:
start = (m+start-1)%len(queue)
queue.pop(start)
return queue[0]
3.6 撲克牌中的順子
從撲克牌中隨機抽5張牌,判斷是不是順子,即這5張牌是不是連續的,2~10為數字本身,A為1,J為11,Q為12,K為13,大小王用0表示,可代表任意數字,
- 參考答案(5分)
本題有兩個環節:
- 從撲克牌中隨機抽5張牌
隨機取牌,可以使用Python的內置模塊random中的sample()方法,該方法可以隨機地從指定串列中提取出多個不同的元素, - 判斷是不是順子
將5張牌換成對應數字,剔除0后排序,若是順子的話,前后元素之差均為1,若不是1,同時超過1的總和大于0的個數,則不是順子,否則為順子,
>>> import random
>>> import numpy as np
>>> def get_five():
poker = list(range(1,14))*4 + [0,0] # 生成54張撲克牌
return random.sample(poker, 5)
>>> def is_straight(five):
no_zero = list(filter(lambda x:x>0, five)) # 剔除0
if len(no_zero) > len(set(no_zero)): # 如有重復
return False # 則不是順子
no_zero.sort() # 非零元素排序
no_zero = np.array(no_zero) # 轉為numpy陣列
diff = np.diff(no_zero) # diff為相鄰元素的差組成的陣列
if np.sum(diff - 1) > 5-no_zero.size: # 若diff各元素減1后的和大于0的個數
return False # 則不是順子
else:
return True
>>> def test(n): # 測驗函式
for i in range(n):
five = get_five()
if is_straight(five):
print(five)
>>> test(100) # 測驗100次
[12, 10, 11, 0, 8]
[5, 1, 0, 3, 2]
[10, 6, 0, 7, 9]
3.7 青蛙上臺階
青蛙每次至少可以跳上一層臺階,最多可以跳上兩個臺階,計算青蛙跳上N層臺階總共有多少種方式,
- 參考答案1(5分)
跳一層只有一種方法,跳兩層則有兩種方法,要跳到K層,可以先跳到K-1層后再跳一次邁上一層,也可以先跳到K-2層后再一步跳上兩層,顯然,跳到K層的方法數量等于跳到K-1層的方法數量加上跳到K-2層的方法數量,基于這個推理,很容易寫出遞回代碼,
>>> def climb(n):
if n == 1:
return 1
elif n == 2:
return 2
else:
return climb(n-1) + climb(n-2)
>>> climb(10)
89
- 參考答案2(5分)
遞回方法雖然簡潔,但會受遞回深度限制,無法計算超過遞回深度的數值,其實,不使用遞回,代碼寫起來也很簡答,
>>> def climb(n):
if n == 1:
return 1
elif n == 2:
return 2
c1, c2 = 1, 2
for i in range(2,n):
c1, c2 = c2, c1+c2
return c2
>>> climb(10)
89
3.8 24點游戲
幾乎每個人都玩過24點游戲,規則也很簡單:任意給出4個數字(視難度不同,一般是10以內或13以內的數字,允許重復),每個數字只能且必須使用1次,利用加減乘除四則運算,使得計算結果為24,例如,4個數字分別為5,5,5,1,則有(5-1/5)*5 = 24,請用代碼解決24點問題,若有解,則列印解,若無解,則列印無解,
- 參考答案(5分)
不考慮計算順序的話,4個數字使用4種運算子連接的話,共有443424=1536種組合,若考慮使用括號改變計算順序,則前述每一種組合又可分為11種情況,遍歷全部153611=16896種組合,即可解決問題,另外,書寫代碼時如果使用內置的排列函式(permutations)和笛卡爾積函式(product),會使代碼更簡練,
>>> from itertools import permutations, product
>>> def game24(n1,n2,n3,n4):
for a,b,c,d in permutations((n1,n2,n3,n4),4):
for o1,o2,o3 in product(['+','-','*','/'], repeat=3): # 笛卡爾積的另一種寫法
cases = list()
cases.append('%d%s%d%s%d%s%d'%(a,o1,b,o2,c,o3,d))
cases.append('(%d%s%d)%s%d%s%d'%(a,o1,b,o2,c,o3,d))
cases.append('%d%s%d%s(%d%s%d)'%(a,o1,b,o2,c,o3,d))
cases.append('%d%s(%d%s%d)%s%d'%(a,o1,b,o2,c,o3,d))
cases.append('(%d%s%d)%s(%d%s%d)'%(a,o1,b,o2,c,o3,d))
cases.append('(%d%s%d%s%d)%s%d'%(a,o1,b,o2,c,o3,d))
cases.append('((%d%s%d)%s%d)%s%d'%(a,o1,b,o2,c,o3,d))
cases.append('(%d%s(%d%s%d))%s%d'%(a,o1,b,o2,c,o3,d))
cases.append('%d%s(%d%s%d%s%d)'%(a,o1,b,o2,c,o3,d))
cases.append('%d%s((%d%s%d)%s%d)'%(a,o1,b,o2,c,o3,d))
cases.append('%d%s(%d%s(%d%s%d))'%(a,o1,b,o2,c,o3,d))
for expression in cases:
try: # 捕獲運算式中分母為0的例外
if eval(expression) == 24:
print('答案:%s = 24'%expression)
return
except:
pass
print('無解!')
>>> game24(5,5,5,1)
答案:5*(5-1/5) = 24
>>> game24(1,3,4,6)
答案:6/(1-3/4) = 24
>>> game24(10,10,4,4)
答案:(10*10-4)/4 = 24
>>> game24(7,7,3,3)
答案:7*(3/7+3) = 24
>>> game24(1,5,7,10)
答案:(1+7/5)*10 = 24
>>> game24(15,25,37,80)
無解!
3.9 背包問題
在一款英雄對戰游戲中,玩家擁有m件裝備和n位英雄,他可以給每一位英雄分配0件或多件裝備,而不同的英雄擁有不同數目的裝備時將獲得不同的攻擊力,玩家如何分配這m件裝備,可以使得n個英雄獲得的攻擊力的和最大?以玩家擁有5件裝備和3位英雄為例,串列p共有3行6列,對應著3位英雄分別擁有從0到5件裝備時的攻擊力,
p = [
[0, 1, 3, 5, 7, 9],
[0, 1, 1, 3, 3, 7],
[0, 3, 4, 5, 6, 7]
]
- 參考答案(5分)
這是一個背包問題的變形,即便不熟悉背包問題,也不難找到解題思路:
- 找出所有可能的裝備分配方案
- 計算每一個方案的攻擊值
- 選擇攻擊值最大的分配方案
找出將m件裝備分配給n位英雄的所有方案是解決問題的核心,
>>> def bag(m, n, result, series=list()):
if n == 1:
for i in range(m+1):
result.append(series+[i])
#print(result[-1])
else:
for i in range(m+1):
bag(m-i, n-1, result, series+[i])
>>> result = list()
>>> bag(5, 3, result) # 將5件裝備分配給3位英雄,共有56種分配方案
>>> p = [
[0,1,3,5,7,9],
[0,1,1,3,3,7],
[0,3,4,5,6,7]
]
>>> v = list()
>>> for item in result: # 計算每一種方案的攻擊值
v.append(p[0][item[0]] + p[1][item[1]] + p[2][item[2]])
>>> max(v) # 最大攻擊值是10
10
>>> result[v.index(max(v))] # 最佳分配方案
[4, 0, 1] # 第1位英雄持有4件裝備,第2位英雄沒有裝備,第3位英雄持有1件裝備,
3.10 空間直線相交問題
ABCD是歐氏空間中不重合的四個點,判斷過點AB的直線和過點CD的直線是否相交,
- 參考答案(5分)
假如使用空間決議幾何的方式,這個問題對于程式員來說是一個難題,不過,如果你熟悉NumPy,理解點積(np.dot)和叉積(np.cross)的話,解決這個問題就變得非常容易了,
- 計算向量ab和向量cd的叉積,得到一個新的向量orth
- 若向量orth的元素全部為零,則兩直線平行,否則向量orth必定同時垂直于向量ab和向量cd
- 直線相交,則向量ac和向量orth的點積為零,否則直線必定不相交
>>> import numpy as np
>>> def is_orthogonal(a, b, c, d):
ab = np.array(a) - np.array(b)
cd = np.array(c) - np.array(d)
ac = np.array(a) - np.array(c)
orth = np.cross(ab,cd)
return orth.any() and np.dot(orth, ac) == 0
>>> a,b,c,d = (0,0,0),(1,0,0),(0,0,0),(0,1,0)
>>> is_orthogonal(a, b, c, d)
True
>>> a,b,c,d = (0,0,0),(1,0,0),(0,0,1),(0,1,1)
>>> is_orthogonal(a, b, c, d)
False
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258818.html
標籤:其他
上一篇:CCF 201312-1 出現次數最多的數 C語言代碼(100分)
下一篇:“春節檔”游戲運營核心方法論
