這個是胡立老師的計畫,一年前舉辦的培訓工程師計畫。剛好錯過了,不過有開放計畫教材。想跟著計畫挑戰,把作業內容貼上來。
前五題都是程式題,之前用Python刷題有刷過類似題型。
主要是第六題需要花的時間比較多,需要學命令提示字元。
import sys
def inp():
num=sys.stdin.readline().replace("\n","")
num=int(num)
numarr=[]
for numi in range(num):
numarr.append((numi+1)*"*")
print(numarr)
inp()
解題時間:10 min
這一題邏輯不難,比較有困難的地方,在於會搞混C++跟Python語法。
import sys,string,re
def inp():
st=sys.stdin.readline().replace("\n","")
atz=tuple(string.ascii_uppercase)
if(st[0] in atz):
print(st[0].lower()+st[1:])
else:
print(st)
inp()
解題時間:16 min
前面有解過10008 - What's Cryptanalysis?,這題算簡易版。不過「string.scill」語法沒有背熟,需要查一下Google。
import sys
def inp():
num=sys.stdin.readline().replace("\n","")
num=int(num)
if(only(num)):
print("T")
else:
print('F')
def only(n):
if(n<3):return 1
for ni in range(2,n,1):
if(n%ni==0):
return 0
return 1
inp()
解題時間:15 min
感覺跟第一題一樣,不過這題的困難版可以加上動態規劃法。
像這題100 -The 3n 1 problem計算過程中會有大量同問題解答,透過寫一個陣列儲存先前計算結果,可以改進計算時間。
不過回去翻發文紀錄,意外發現標題命名需要改進。
用Python寫不難,有想過用C++寫,但是打著打著就變成Python。
感謝撥冗閱讀。