好康道相報
※加入部落軌道,讓你的部落格有更多人知道 《按此加入》《使用心得
※欲轉貼本站文章者,只要註明出處及網址即可,不需我同意了,謝謝您的配合
※留悄悄話的網友請注意:如果您非痞客邦會員(包含使用FB/Google+帳號),是看不到回覆的喔
※痞客邦會自動將疑似廣告留言隱藏,因此若留言後看不到,可能是被系統自動隱藏了,由於我現在很久才會開一次網誌,有看到時我才會將非廣告留言解開,敬請見諒

上禮拜六是我上大學最後一次的程設賽
由於阿業提早畢業,阿維不想參賽,因此今年我跟阿良與王品組隊
去年有九組報名,今年卻只剩下五組,而且只有一組大四、一組大三
人數較比之下少了許多...

這次的比賽由曾媽出題
不過我猜曾媽並沒有實際寫過這些題目
因為有兩題的輸出樣本是有錯的
另外這些題目都沒有限定範圍,其實還蠻不嚴謹的
只是湯圓技師在改答案時也是用非常簡單的輸入樣本
所以還算是不用擔心

說起來今年的題目跟去年差不多簡單
相信大四隨便一位同學都可以答對的
唯一的差別是今天把輸出答案的方式從螢幕輸出改成從檔案輸出
因為往年都是直接從螢幕輸出,所以我差一點被騙
幸好阿良與王品最後有提醒我

以下是今年的題目

1.輸入兩個正整數m、n,從檔案輸出所有小於m且為數總和為n的數
input:
100 5
output:
5
14
23
32
41
50

小評:這題目10分鐘內可以秒殺

2.從檔案讀入兩個超長整數,若負號則負號在最前面
從檔案輸出這兩個數字的和

input:
98765432198765432100
-11234567891234567890
output:
8753064307530864210

小評:如果這題用Java寫的話兩分鐘內秒殺
BigInteger x = new BigInteger("輸入數字1");
x.add("輸入數字2");
但問題是我沒學過Java的開檔讀檔啊 囧
所以只好用C語言慢慢寫大數運算
而且這個大數運算還可能有減法
所以大數加法跟大數減法都必須做
其實我本來有做出來,但因為某些原因最後沒上傳
所以這題就錯了,真是可惜

3.有兩個成績檔,一個記錄學生的學號、姓名、平時分數、期中考分數
另一個記錄學號、期末考分數
兩筆資料都已經以學號順序由小到大存放
請以平時30% 期中30% 期末40%的比重加上學期總平均
從檔案輸出學號、姓名、平時分數、期中考分數、期末考分數、學期總平均

input:(p31.txt)
84506151 李柏慶 70 90
85506151 呂季運 72 75
86302005 陳勇先 77 80

input:(p32.txt)
84506151 83
85506151 90
86302005 49

output:(p3_out.txt)
84506151 李柏慶 70 90 81
85506151 呂季運 72 75 80
86302005 陳勇先 77 80 67
(樣本有非常多筆資料,此處只列三筆)

小評:這根本是一年級作業題目吧?
好歹也把學號搞亂一下啊,難怪這題所有人都答對

4.從檔案輸入某病患每天不同時間必須服用各式不同的藥品
以0~24小時排序輸出該病患幾點該服用什麼藥品

input:
降血糖
07, 17
降血脂
08
治療帕金森氏症
08, 12, 18
output:
07  降血糖
08  降血脂, 治療帕金森氏症
12  治療帕金森氏症
17  降血糖
18  治療帕金森氏症
(樣本有非常多筆資料,此處只列三筆)

小評:還是很簡單的題目,就只是在考怎麼切字串罷了
如果真的不會切的話,其實也可用VB啊
省麻煩的話直接宣告一個24個元素的String陣列
然後一個個將字串放進去即可

5.從鍵盤輸入兩個時間(格式為hh:mm:ss),時間前後順序不定
合法範圍為00:00:00~23:59:59
從螢幕輸出這兩個時間相差幾點幾分幾秒

input:
09:34:12
10:09:02
output:
00:34:50

小評:這題也是腦殘題目...不就單純的減法嗎?

6.寫一個程式從檔案輸入n、m,再輸入n*m的二維陣列代表迷宮
0代表可通行、1無法通行
列出從(1,1)到(n,m)的任一可能路徑
(就是從左上到右下啦)
只允許水平跟垂直方向移動
如果沒有路徑存在,顯示「沒有路徑存在」的訊息

input:
4 5
01101
00001
11010
01000
output:
1, 1
2, 1
2, 2
2, 3
3, 3
4, 3
4, 4
4, 5

這題其實很簡單,就只是普通的遞迴而已
這也是我很有怨念的一道題目(因為當時大甲沒有寫對)
不過這個題目跟大甲有些不同
1.碰到死路的話不能輸出,如(2,4) (1,4)
2.如果沒辦法走到出口,全都不能輸出
最後我是只好先把走過的資料存在陣列
若走到死路就往回扣,沒走到終點就全都不輸出
這題其實只有我們這組寫對,有難成這樣?

大學最後一次的程設賽就這樣結束了
名次由於是跟別人比較的關係我就不提了...

蕭雲 發表在 痞客邦 PIXNET 留言(4) 人氣()


留言列表 (4)

發表留言
  • 佶也
  • 能提早畢業
    真是好厲害
    需要什條件
  • 其實條件很難
    "每學期"班排名都要在前10%
    且體育軍訓不得低於70分
    操行70分以上

    蕭雲 於 2009/05/20 13:56 回覆

  • YA~
  • 東吳大學學則
    第 十五 條 各學系修讀學士學位學生成績優異,在規定修業年限屆滿前一學期或一學年修滿該學系畢業學分者,經報請校長核准後,得提前畢業。
    前項所稱成績優異,係指每學期學業成績名次在該學系該班學生數前百分之十以內,必修之體育、軍訓(護理)成績各七十分以上及操行成績各七十分以上者而言。
  • 提早畢業的強者來啦
    你這樣把我的學校公布出來了@_@"

    蕭雲 於 2009/05/20 13:56 回覆

  • imHK
  • 這麼好,全班前百分之十就好
    哪像某些學校還會多一些狗不拉嘰的限制(譬如說每學期要80分...)
    討厭
  • 施主此言差矣
    全班前10%是每個學期都要前10%
    班上若是5X人
    大約在第六名就不是10%了
    如果班上競爭激烈的話
    也有可能每學期都要80分才能前10%
    總結來說,這個條件也不簡單啦

    蕭雲 於 2009/06/02 15:15 回覆

  • 王真實
  • 請問可以請益第2題 - 從檔案讀入兩個超長整數,若負號則負號在最前面
    從檔案輸出這兩個數字的和 的程式嗎??
    sachu0717@gmail.com
  • 只要會作大數加法跟大數減法就好了
    或是參考Java的BigInteger這個類別

    蕭雲 於 2010/03/23 13:16 回覆