iT邦幫忙

2019 iT 邦幫忙鐵人賽

0
自我挑戰組

程式設計師大冒險系列 第 40

[40/150]Week01挑戰「程式導師計畫」(學生角度)

  • 分享至 

  • xImage
  •  

這個是胡立老師的計畫,一年前舉辦的培訓工程師計畫。剛好錯過了,不過有開放計畫教材。想跟著計畫挑戰,把作業內容貼上來。


【大綱】

  • 作業說明
  • 解題
    • 好多星星
    • 首字母大寫
    • 判斷質數
  • 總結

【作業說明】

前五題都是程式題,之前用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。
感謝撥冗閱讀。


上一篇
[39/150]Day08原來w3schools還有測驗功能
下一篇
[41/150]Week01用C++解題,判斷迴文、大數加法
系列文
程式設計師大冒險115
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言