2012年9月30日 星期日

100模擬 Problem 4-1:撲克牌遊戲


小朋友常喜歡玩很多撲克牌的遊戲。撲克牌有四種花色,黑桃、紅桃、方塊、和梅花。
「同花順」為同花色五張連續數字;相同花色的「順子」。
「四條」為四張同數字的牌,外加任一單張的五張牌;
「葫蘆」為三張同數字,另兩張同數字的牌;一個「一對」和「三條」所組成的五張牌;
「順子」為五張數字連續的牌,數字各差1點的連續牌,從 A-2-3-4-5(1-2-3-4-5),到
10-J-Q-K-A(10-11-12-13-14 沒有J-Q-K-A-2) ;;
「三條」為三張同數字;
「兩對」是有兩對兩兩同數字的牌;
「一對」則是只有兩張同數字;
「雜牌」指不屬於以上任何一種組合。
五張牌依照牌面可能有多種組合,一般判斷大小的順序如下:
同花順 > 四條 > 葫蘆 > 順子 > 三條 > 兩對 > 一對 > 雜牌
同樣組合時,先比數字大小(A 最大再來是K(13)大,2 最小)再比花色。花色大小順序
為黑桃 > 紅桃 > 方塊 > 梅花
例如黑桃同花順 9,10,11,12,13 小於紅桃同花順10,11,12,13,A 但大於方塊同花順
9,10,J(11),Q(12),K(13)。葫蘆以三條的大小作判斷,也就是說2,2,10,10,10 大於8,8,9,9,9。兩對則以較大的對作判斷,同樣數字時,有黑桃的人贏。雜牌以其中最大的牌作判斷。請幫小朋友們寫個程式,判斷手上的五張牌是什麼牌。
輸入說明:
輸入資料含多組測試案例,第1 行的數字n 代表有幾筆資料要測試,而n 的值介於1 和10之間,每個案例有五張牌,每組測試案例,為小朋友手上的牌,每張牌以一個字母表示花色
(S 表黑桃,H 表紅桃,D 表方塊,C 表梅花)及一個介於1~13 之間的數字(A:1、J:11、Q:12、K:13)。
輸出說明:
按照小朋友手上的五張牌,判斷其為何種牌,結果輸出其代碼。
「同花順」為同花色五張連續數字;則輸出 123456。
「四條」為四張同數字的牌;則輸出 4。
「葫蘆」為三張同數字,另兩張同數字的牌;則輸出 32。
第 12 頁,共 13 頁
「順子」為五張數字連續的牌,其中A(1)與K(13)得相接(可以把A 看成1 或14);則輸出12345。
「三條」為三張同數字;則輸出 3。
「兩對」是有兩對兩兩同數字的牌;則輸出 22。
「一對」則是只有兩張同數字;則輸出 1。
「雜牌」指不屬於以上任何一種組合。則輸出 0。
輸入範例:【檔名:in-4-1-1.txt】
3
S3 H5 S4 D5 C5
H1 D6 C6 H12 S12
S13 D12 H10 C11 S1
輸入範例:【檔名:in-4-1-2.txt】
2
D2 H5 S2 D5 C5
D3 H5 S2 D7 C8
輸出範例:【檔名:out-4-1.txt】
3
22
12345
32
0

100模擬 Problem 3-2:漢明碼(Haming Code)


漢明碼(Haming Code)
1. 具有自動偵錯與更正錯誤一個位元的功能,兩個位元有誤只能偵測。
2. m個位元資料,須 r 個同位元查出錯誤。 m+r+1≦2^r
3. 同位元(Parity)放置位置為2^(r-1)
m:資料位元長度 r:檢查位元長度 (2^r) n:總傳送位元數 ( n= m+ r )
舉例來說,如果需要傳送7 個位元 110 0001 資料,則 m = 7,7+4+1 < =2^4,r= 4,n = 7 + 4,
檢查位元需要4 個位元。
同位元檢查,分為兩種,一種為奇同位檢查另一種為偶同位檢查,以偶同位例子來說,
0110110,已經有4 個1,所以偶同位元就填入0,資料加偶同位為01101100。接下來的計算
都用偶同位。
假設,要傳的字元為a,對應到7 個位元的ASCII 為110 0001,則其漢明碼的檢查碼分別為1011
但是要跳過為 1 2 4 8 這幾個位置,如下圖:
位置 1 2 3 4 5 6 7 8 9 10 11
P1 P2 1 P3 1 0 0 P4 0 0 1
目前檢查位元P1 P2 P3 P4 是未知的,需要透過同位元檢查來取得,如下圖:
位置 二進位數字
1 0 0 0 P1
2 0 0 P2 0
3 0 0 1 1
4 0 P3 0 0
5 0 1 0 1
6 0 0 0 0
7 0 0 0 0
8 P4 0 0 0
9 0 0 0 0
10 0 0 0 0
11 1 0 1 1
同位元檢查 1 1 0 1
要注意的是位置3、5、11 為1,所以在二進位數字那邊就要填入0011、0101、1011 其他填0000。
同位元檢查那邊以P1 那一欄來說,那一欄一共有3 個1,所以P1 需要填入1,P2P3P4 以此類
推,字元為a, ASCII 為110 0001,漢明碼P1P2P3P4 檢查碼為1011,最後所傳送的資料為
10111001001。
第 10 頁,共 13 頁
輸入說明:
第1 行的數字n 代表有幾筆字元資料要計算,接下來資料為傳送字元[a-zA-Z0-9]。
輸出說明:
輸出為字元對應的漢明碼P1P2P3P4 檢查碼。
輸入範例:【檔名:in-3-2-1.txt】
3
H
a
m
輸入範例:【檔名:in-3-2-2.txt】
2
c
e
輸出範例:【檔名:out-3-2.txt】
0010
1011
1100
1110
0010

100模擬 Problem 4-2:找零錢問題


子題 2:找零錢問題 (限制時間: 5 seconds)
目前台灣常用的銅板有50 元、10 元、5 元、1 元共四種。今天媽媽請小華去買東西換銅
板回來,且媽媽交待,要小華請老闆找零錢的數目要最少,小華帶了n 張的100 元紙幣,買
了n 項金額少於100 元東西,有n 筆數量的零錢要找給小華,請幫老闆算一算需找多少個50
元、10 元、5 元、1 元的銅板,其銅板數目最少。
輸入說明:
檔案輸入第一行為總共幾筆金額,接下來是每筆交易金額大小。
輸出說明:
請算出每筆交易金額可換回的銅板數量,依序列出50 元銅板數量,10 元銅板數量,5 元銅板
數量,1 元銅板數量。
輸入範例:【檔名:in-4-2-1.txt】
3
59
51
34
輸入範例:【檔名:in-4-2-2.txt】
2
25
10
輸出範例:【檔名:out-4-2.txt】
50,0 10,4 5,0 1,1
50,0 10,4 5,1 1,4
50,1 10,1 5,1 1,1
50,1 10,2 5,1 1,0
50,1 10,4 5,0 1,0

100模擬 Problem 3:檢查碼問題


子題1:
中華民國身分證的號碼是經由一串公式所產生出來的,目前中華民國身分證字號一共有十
碼,包括第一個大寫的英文字母與接續的九個阿拉伯數字。
(1)第一個字元代表地區,轉換方式為:A 轉換成1,0 兩個字元,B 轉換成1,1
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
10 11 12 13 14 15 16 17 34 18 19 20 21 22 35 23 24 25 26 27 28 29 32 30 31 33
(2)第二個字元代表性別,1 代表男性,2 代表女性
(3)第三個字元到第九個字元為流水號碼。
(4)第十個字元為檢查號碼。
例如:
A123456789,A 的轉換字元是1 和0,
1 0 1 2 3 4 5 6 7 8 9
n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11
然後再把每一個數字,依序乘上 1 9 8 7 6 5 4 3 2 1 1 的加權,再相加
套入公式,其結果為
然後再除以10,130/10 如果整除(130=10(mod 0),該組身分證字號為有效。
輸入說明:
第 1 行的數字n 代表有幾筆資料要測試,而n 的值介於1 和10 之間,之後每行為身分證字
號。
輸出說明:
從第 1 行起每行輸出對應到每組身分證字號,若為有效的身分證字號則輸出1,若為無效則
輸出為0。
輸入檔案 1:【檔名:in-3-1-1.txt】
3
A123456789
A123456788
A223499999
第 8 頁,共 13 頁
輸入檔案 2:【檔名:in-3-1-2.txt】
2
A107386817
A116673574
輸出範例:【檔名:out-3-1.txt】
1
0
0
1
1

100模擬 Problem 1-2:字串的處理


子題 2:在此子題中,「邏輯表示式」除了「true」、「false」、「==」、「!=」及「空格」外,另外
有一個變數「a」。其中「a」的值可能是「true」或「false」其中之一。已知輸入檔中所有的邏
輯表示式「結果均為『真』」,請選手判斷輸入檔各表示式中「a」的值,並依序輸出至輸出檔
中。
輸入說明:
共有4 行資料,每行有1 個邏輯表示式,每行最多120 個字。
輸出說明:
共4 行,分別列出輸入檔中對應行數的邏輯表示式內「a」的值。若「a」的值為「true」,輸
出「TRUE」,反之輸出「FALSE」。(輸出均為大寫,選手請注意。)
輸入範例:【檔名:in-1-2.txt】
true==false==a==true!=false
a!=false==true!=false==true
false==true==true!=false!=true!=false==a==true
true==false==true!=false==a
輸出範例:【檔名:out-1-2.txt】
FALSE
TRUE
TRUE
FALSE

100模擬 Problem 1:字串的處理


此問題為給定由「英文」、「數字」及「特定符號」組成「邏輯表示式」,判斷此邏輯表示式的敘述是否為真?
子題1: 在此子題中,邏輯表示式的內容只包括「true」、「false」、「==」、「!=」及「空格」。
其中「true」代表邏輯運算的「真」,而「false」代表「假」;另「==」代表邏輯運算的「是否相等」,而「!=」代表「是否不相等」。已知「==」運算,在前後比較值「同為true」或「同為false」時,其結果為「true」;但若比較值「一個true、一個false」時,其結果為「false」。另知「!=」運算前後比較值「同為true」或「同為false」時,其結果為「false」;但若比較值「一個true、一個false」時,其結果為「true」。在邏輯表示式中的空白均不具運算意義,選手可忽略之。輸入檔的資料,每行代表一個邏輯表示式,請選手判斷其邏輯運算的最後結果。若最後結果為真,該相對應輸出為「TRUE」;若為假,輸出「FALSE」。輸入的字串,不存在邏輯表示式語法的錯誤,選手可不必另外檢查之。本題的邏輯運算由多個子邏輯運算組成時,其運算應由左自右逐步檢查。
輸入說明:
共有4 行資料,每行有1 個邏輯表示式,每行最多120 個字。
輸出說明:
共4 行,分別列出輸入檔對應的邏輯表示式計算結果。若最後結果為真,該相對應輸出為
「TRUE」,反之輸出「FALSE」。(輸出均為大寫,選手請注意。)
輸入範例:【檔名:in-1-1.txt】
true==false!=false
true!=true==false==true==false
false==false!=true!=true!=flase==true
false!=false==true==false==true!=false==true!=false
輸出範例:【檔名:out-1-1.txt】
FALSE
FALSE
TRUE
TRUE

2012年9月23日 星期日

100正式Problem:4-2

小朋友常喜歡玩很多撲克牌的遊戲。撲克牌有四種花色,黑桃、紅桃、方塊、和梅花。
「同花順」為同花色五張連續數字,相同花色的「順子」。
「四條」為四張同數字的牌,外加任一單張的五張牌;
「葫蘆」為三張同數字,另兩張同數字的牌;一個「一對」和「三條」所組成的五張牌;
「順子」為五張數字連續的牌,數字各差1點的連續牌,從最小 A-2-3-4-5(1-2-3-4-5),到最
最大10-J-Q-K-A(10-11-12-13-14),但不包括J-Q-K-A-2 的連續方式。
「三條」為三張同數字;
「兩對」是有兩對兩兩同數字的牌;
「一對」則是只有兩張同數字;
「雜牌」指不屬於以上任何一種組合。
五張牌依照牌面可能有多種組合,一般判斷大小的順序如下:
同花順 > 四條 > 葫蘆 > 順子 > 三條 > 兩對 > 一對 > 雜牌
同樣組合時,先比數字大小(A 最大再來是K(13)大,2 最小),再比花色。每張牌以一個字母表示花色(S 表黑桃,H 表紅桃,D 表方塊,C 表梅花)及一個介於1~13 之間的數字(A:1、J:11、Q:12、K:13)。花色大小順序為:
黑桃 > 紅桃 > 方塊 > 梅花
例如黑桃同花順 9、10、J(11)、Q(12)、K(13)小於紅桃同花順10、J(11)、Q(12)、K(13)、A,
但大於方塊同花順9、10、J(11)、Q(12)、K(13)。葫蘆以三條的大小作判斷,也就是說2、2、
10、10、10 大於8、8、9、9、9。兩對則以較大的對作判斷,同樣數字時,有黑桃的人贏。
例如:H1 D6 C6 H12 S12 大於H2 D9 C9 D12 C12,因為S12 為黑桃12。雜牌以其中最大的牌作判斷。請幫小朋友們寫個程式,判斷那個小朋友手上的五張牌,找出誰的牌最大和最小。
輸入說明:
輸入資料含多個測試案例,每個檔案 in1.txt 和in2.txt 都在各有一副牌52 張的情況下,第1行的數字n 代表有幾筆資料要測試,而n 的值介於3(含)和8(含)之間,每個案例有五張牌,每個測試案例,是其中一位小朋友手上的牌。
輸出說明:
按照小朋友手上的五張牌,在 n 個測試案例中,找出那個小朋友的牌是最大和最小,結果按照原來牌的順序輸出那二位小朋友牌是最大和最小的五張牌。每個檔案in1.txt 和in2.txt,各找出一組最大和最小的五張牌。

輸入範例:【檔名:in1.txt】
4
S3 H5 S4 D5 C5
H7 H8 H10 H9 H11
H1 D6 C6 H12 S12
D12 C12 D9 C9 S13
輸入範例:【檔名:in2.txt】
4
D2 H5 S2 D5 C5
D3 H4 S1 D7 C8
H1 S7 C7 H13 S13
C2 S3 S4 S6 S8
輸出範例:【檔名:out.txt】
H7 H8 H10 H9 H11
D12 C12 D9 C9 S13
D2 H5 S2 D5 C5
D3 H4 S1 D7 C8

2012年9月18日 星期二

100正式Problem:3-2


子題 2:
漢明碼(Hamming Code)
1. 具有自動偵錯與更正錯誤一個位元的功能,兩個位元有誤只能偵測。
2. m 個位元資料,須 r 個同位元查出錯誤。而 m 和 r 的限制式為 m+r+1≦2^r
3. 同位元(Parity)放置位置為2^(r-1)
m:資料位元長度 r:檢查位元長度 (2^r) n:總傳送位元數 ( n= m+ r )
舉例來說,如果需要傳送7 個位元 110 0001 資料,則 m = 7,7+4+1 < =2^4,r 由限制式算出至少為4,因此r= 4,n = 7 + 4,檢查位元需要4 個位元。如果需要傳送16 個位元資料,則檢查位元需要5 個位元。
同位元檢查,分為兩種,一種為奇同位檢查另一種為偶同位檢查,以偶同位例子來說,0110110,已經有4 個1,其值為偶數,所以偶同位元就填入0,保持為1 的個數為偶數,資
料加偶同位為01101100。接下來的計算都用偶同位。
假設,要傳的16 位元資料為0001 0010 0011 0101,則其漢明碼的檢查碼至少需五碼,分別為P1P2P3P4P5,要傳送的位元資料的 1、 2、 4 、8 、16 這幾個位置插入這五位元的漢明碼檢查碼,如下圖:
位置 1 2 3 4 5 6 7 8 9 10 11
P1 P2 0 P3 0 0 1 P4 0 0 1
位置 12 13 14 15 16 17 18 19 20 21
0 0 0 1 P5 1 0 1 0 1
目前檢查位元P1 P2 P3 P4P5 是未知,對應的位置分別為1、 2、 4 、8 、16,需要透過同位元檢查來取得,位置分別以十進制和二進制表示,如下圖:
位置 二進位數字
1(00001) 0 0 0 0 P1
2(00010) 0 0 0 P2 0
3(00011) 0 0 0 0 0
4(00100) 0 0 P3 0 0
5(00101) 0 0 0 0 0
6(00110) 0 0 0 0 0
7(00111) 0 0 1 1 1
8(01000) 0 P4 0 0 0
9(01001) 0 0 0 0 0
10(01010) 0 0 0 0 0
11(01011) 0 1 0 1 1
12(01100) 0 0 0 0 0
13(01101) 0 0 0 0 0
14(01110) 0 0 0 0 0
15(01111) 0 1 1 1 1
16(10000) P5 0 0 0 0
17(10001) 1 0 0 0 1
18(10010) 0 0 0 0 0
19(10011) 1 0 0 1 1
20(10100) 0 0 0 0 0
21(10101) 1 0 1 0 1
同位元檢查1 0 1 0 0
要注意的是位置7、11、15、17、19、21 為1,所以在二進位數字那邊分別要填入00111、01011、01111、10001、10011、10101,其他數字因為都為0,所以位置填00000。
同位元檢查那邊以 P1 那一欄來說,一共有6 個1,所以P1 需要填入0,P5 那一欄來說,一共有3 個1,所以P5 需要填入1,P2P3P4 以此類推,16 位元資料0001 0010 0011 0101,漢明碼檢查碼P1P2P3P4P5 為00101。
十六進制在數學中是一種逢 16 進1 的進位制,一般用數字0 到9 和字母A 到F 表示(其中:A~F 即10~15),由1,2,3,---,9,A,B,C,D,E,F 等十六個基本數字所組成,數量計數從0 到F,滿十六即進位,其中A,B,C,D,E,F 分別代表十進制的10,11,12,13,14,15。例如十進制數78,在二進制寫成01001110,在16 進制寫成4E(4 = 0100, E = 1110)。下表列出0~15 的二進制、十進制與十六進制的對照:
二進制 十進制 十六進制
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F
假設每筆輸入資料都有16 位元(二進制)資料要傳送,輸入資料以十六進制來表示,以4位元(二進制)為一字元(十六進制),則每筆輸入資料四個字元,每個字元為0~9 和A~F。
輸入說明:
第 1 行的數字n 代表有幾筆資料要傳送,n 的值介於1(含)和5(含)之間,每筆輸入資料為四個字元的十六進制,字元A~F 為大寫。程式不用檢查輸入格式。
輸出說明:
輸出為四個字元資料所對應的漢明碼 P1P2P3P4P5 檢查碼。
輸入範例:【檔名:in1.txt】
5
1235
1234
6F00
8000
1000
輸入範例:【檔名:in2.txt】
2
C80B
8828
輸出範例:【檔名:out.txt】
00101
10000
11100
11000
11100

00111
11101

2012年9月14日 星期五

100正式Problem 3:檢查碼問題


子題 1:
中華民國身分證的號碼是經由一串公式所產生出來的,目前中華民國身分證字號一共有十碼,包括第一個大寫的英文字母與接續的九個阿拉伯數字。
(1)第一個碼代表地區,轉換方式為:A 轉換成1,0 兩個字元,B 轉換成1,1,餘如下:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
10 11 12 13 14 15 16 17 34 18 19 20 21 22 35 23 24 25 26 27 28 29 32 30 31 33
(2)第二個碼代表性別,1 代表男性,2 代表女性
(3)第三個碼到第九個字元為流水號碼。
(4)第十個碼為檢查號碼。
例如:A123456789,A 的轉換字元是1 和0,其餘各碼亦轉換成字元。轉換後的字元數值依序存在的變數中,如下:
然後再把每一個變數,依序乘上 1 9 8 7 6 5 4 3 2 1 1 的加權,再相加,如下:
將身分證號碼 A123456789 套入公式,其結果為:
然後再除以 10,如果整除,該組身分證字號為有效。
在客服電話系統中,需要使用者輸入個人身分證號碼,因為電話按鈕只有數字鍵,為了方便使用者輸入身分證,只輸入身分證後面9 個數字,再由客服電話系統告知那些英文字母和這輸入身分證後面9 個數字合起來是有效的身分證號碼,由使用者最後確認身分證號。請寫出客服電話系統需要的程式,使用者輸入身分證後面9 個數字,找出對應有效的英文字母。
例如輸入身分證後面9 個數字”123456789”,和這數字合起有效的身分證號碼為”A123456789”、 ”M123456789”和 ”W123456789”,則客服電話系統中依英文字母順序輸
出AMW。
1 0 1 2 3 4 5 6 7 8 9
n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11
輸入說明:
第 1 行的數字n 代表有幾筆資料要測試,n 的值介於1 和5(含)之間,之後每行為身分證後面9 個數字,不含第一個大寫的英文字母。程式不用檢查輸入格式。
輸出說明:
從第 1 行起每行輸出對應的英文字母,其和輸入身分證後面9 個數字可合為有效的身分證號
碼。列出這些對應到有效的身分證號碼的所有字母,結果依英文字母順序大寫輸出。(輸出均
為大寫,選手請注意。)
輸入檔案 1:【檔名:in1.txt】
3
123456789
123456788
223344556
輸入檔案 2:【檔名:in2.txt】
3
102345678
108881111
101111111
輸出範例:【檔名:out.txt】
AMW
KLY
DOQ

ER
GT
BNZ

100正式Problem 4-1


子題 1:找零錢問題
假設在某地區使用的銅板有 50 元、20 元、10 元、5 元、1 元共五種。今天媽媽請小華去買東西換銅板回來,且媽媽交待,要小華請老闆找零錢的數目要最少,小華帶了n 張的100元紙幣,買了n 項金額少於100 元東西,有n 筆數量的零錢要找給小華,請幫老闆算一算每筆交易需找多少個50 元、20 元、10 元、5 元、1 元的銅板,其銅板數目最少。
輸入說明:
檔案輸入第一行為總共幾筆金額,其值介於1(含)和5(含)之間,接下來是每筆交易金額大小,
交易金額介於0(不含)和100(不含)之間。
輸出說明:
請算出每筆交易金額可換回的銅板數量,每筆交易都會各別找回50 元、20 元、10 元、5 元、
1 元銅板若干,請算出每筆交易找回的銅板,依序計算其50 元銅板數量,20 元銅板數量,10
元銅板數量,5 元銅板數量,1 元銅板數量總和。
例如三筆交易金額分別為 59、51、34,每筆交易找回的銅板分別為:
50,0 20,2 10,0 5,0 1,1
50,0 20,2 10,0 5,1 1,4
50,1 20,0 10,1 5,1 1,1
最後輸出交易找回50 元、20 元、10 元、5 元、1 元銅板總合:
50,1 20,4 10,1 5,2 1,6
例如二筆交易金額分別為 25、10,每筆交易找回的銅板分別為:
50,1 20,1 10,0 5,1 1,0
50,1 20,2 10,0 5,0 1,0
最後輸出交易找回50 元、20 元、10 元、5 元、1 元銅板總合:
50,2 20,3 10,0 5,1 1,0
每個檔案in1.txt 和in2.txt,各輸出一個結果。
輸入範例:【檔名:in1.txt】

3
59
51
34

輸入範例:【檔名:in2.txt】

2
25
10

輸出範例:【檔名:out.txt】
50,1 20,4 10,1 5,2 1,6

50,2 20,3 10,0 5,1 1,0

2012年9月13日 星期四

100正式Problem1-2


在此子題中,「邏輯表示式」除了原有的「整數數字」、「+」、「-」、「==」及「空格」外,另外有一個運算符號「*」,代表「乘法運算」,其運算優先權「高於」加法及減法。請選手在輸出檔中輸出相對表示式檢查的結果。
輸入說明:
每個輸入檔案有 4 行資料,每行有1 個邏輯表示式,每行最多120 個字。「整數數字」介於0
到100 之間,數字運算結果介於正負1000 之間。
輸出說明:
依序輸出對應的邏輯表示式檢查結果。若輸入行之檢查結果為真,該行輸出為「TRUE」,反
之輸出「FALSE」。(輸出均為大寫,選手請注意。)
輸入檔案 1:【檔名:in1.txt】

20+3*5==7*5
13*3+2*3==123
6+5*4-8==18
4-5+15-3*3==0

輸入檔案 2:【檔名:in2.txt】

10*3+5==5*7
12*4-10+5==43
72-10*5==20+2
5-4*10+50==60

輸出檔案:【檔名:out.txt】
TRUE
FALSE
TRUE
FALSE

TRUE
TRUE
TRUE
FALSE

100正式Problem 1:字串的處理


此問題為給定由「整數數字」、「+」、「-」及「特定符號」組成「邏輯表示式」,判斷此邏輯表示式的敘述是否為真?
在此子題中,邏輯表示式的內容只包括「整數數字」、「+」、「-」、「==」及「空格」。其中「+」代表數字運算的「加法」,而「-」代表「減法」;另「==」代表邏輯運算的「是否相等」。
已知「==」運算,在前後比較值「相同」時,其結果為「TRUE」;若「不同」時,其結果為
「FALSE」。在邏輯表示式中的空白均不具運算意義,選手可忽略之。輸入檔的資料,每行代表一個邏輯表示式,請選手判斷其邏輯運算的最後結果。若最後結果為真,該相對應輸出為「TRUE」;若為假,輸出「FALSE」。輸入的字串,不存在邏輯表示式語法的錯誤,選手可不必另外檢查之。其運算的優先順序是「先算加、減法」,「最後才比是否相等」。
輸入說明:
每個輸入檔案有 4 行資料,每行有1 個邏輯表示式,每行最多120 個字。「整數數字」介於0
到100 之間,數字運算結果介於正負1000 之間。
輸出說明:
依序列出輸入檔對應的邏輯表示式檢查結果。若輸入行檢查結果為真,該行相對應輸出為
「TRUE」,反之輸出「FALSE」。(輸出均為大寫,選手請注意。)

輸入檔案 1:【檔名:in1.txt】

25+4-33+22-2==16
15+30==13-58
20+10-50==40-60
20==10+10+10+10-30
輸入檔案 2:【檔名:in2.txt】

24-4+10==10-40
33+5-10==43-5-5-3-2
10-20-30==30-40-30
30-40+10==10-20+30-20

輸出範例:【檔名:out.txt】

TRUE
FALSE
TRUE
FALSE

FALSE
TRUE
TRUE
TRUE

自動賣票機找零問題

某城市的捷運車票共有20、25、30、35、40、45六種,而可投入的錢幣共有1、5、10、50、100元五種。
請計算可能的投幣方式與需找回的零錢金額。
(當所投入的金額超過票價後,多投的錢幣會直接吐還給使用者,所以,多投的部分不用計算。例如,票價20元,當依序投入7個1元、3個5元後,再來投入任何錢幣都會直接先吐還使用者。直接先吐還的這部分,不用寫入程式。)
輸入:in.txt
20
輸出:out.txt
投入20個1元,找回0元。
投入15個1元 1個5元,找回0元。
投入10個1元 2個5元,找回0元。
投入5個1元 3個5元,找回0元。

投入1個50元,找回30元。
投入1個100元,找回80元。

2012年9月12日 星期三

退休的福利


老瘋是楓智高中的校長,如今要退休了,楓智高中對退休有個特殊的傳統,就是第1天可以得到一顆米,而第二天可以得到2顆米,第3天可以再拿四顆米,.....請你求第N天共得多少米?N<=1000。

輸入說明 :
有個數N。
輸出說明 :
第N天共得多少米。

範例輸入 :

1



1000

範例輸出 :



10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069375

2012年9月10日 星期一

空間切割


內容 :
對任意正整數n,空間中的n 個平面最多可將空間切成幾個區域?

輸入說明 :

1
2
3

範例輸出 :

4
8

網路參考:http://zh.wikipedia.org/wiki/三維空間
http://zh.wikipedia.org/wiki/空间分割定理
http://ycity.sg1013.myweb.hinet.net/space.pdf

                  

自動販賣機

自動販賣機的物品價格為10-25元,銅板種類1,5,10,50四種,讀取"in.txt"物品價格,計算可能的投幣方式與需找回的零錢。
輸入範例:

11
輸出範例: 

1*11=11 找0元
1*6+5*1=11 找0元
1*1+5*2=11 找0元
5*3=15 找4元
1*1+10*1=11 找0元
5*1+10*1=15 找4元
10*2=20 找9元
50*1=50 找39元
出自 程式設計隊訓練教材

2012年9月8日 星期六

兔子問題

若一隻兔子的壽命是10年。如果開始有一對剛生的兔子,以後每年出生兔子數是前一年出生兔子數的兩倍,求第n年兔子的總數。


輸入:


 每行一個n(0<=n<63)




輸入範例:
0
1




輸出範例:
2
6

2012年9月6日 星期四

4K魔方陣


既然有了奇數的魔方陣

那麼來嘗試下偶數的 ^^







輸入說明:

輸入一數 n (0<n<10000,且n mod 4 =0)

輸出說明:
請照題目規則,輸出n行n列的矩陣,且直行橫列對角線總和都要相等。

個位數前請補0對齊




輸入範例:

4



輸出範例:

01 15 14 04

12 06 07 09

08 10 11 05

13 03 02 16

2012年9月5日 星期三

棋盤


在棋盤中放稻子
第一格放1個,第2格放2個,第3格放4個....以此類推
到第64個總共有幾個 ?

2012年9月4日 星期二

97模擬 Problem 1 (字數統計


雷迪雅被老師要求寫一份為數2000 字的報告,可是雷迪雅胸無點墨、才疏學淺,常常寫了一整個下午還不到一頁,

  因此他每寫一段時間就開始數自己已經寫了多少個字,可是常常這樣數也是會累的,於是他希望能有一個自動字數統計
程式。

  有了字數統計程式,就可以自動統計好一篇文章總共有幾行、有幾個字、有幾個字元。行被定義為用換行字元隔開的連續字元,字被定義為用空白、TAB 或換行字元所隔開的連續字元,而字元除了一般可見的字元還包括TAB 字元和空白字元(注意不包含換行字元)。
  身為雷迪雅好朋友的你,常常受到他的照顧,正所謂吃人嘴軟,拿人手短,如今雷迪雅遇到了這個難題,請你義不容辭地寫一個程式幫他吧!

輸入說明:
  輸入檔第一行說明有幾組測試資料,第二行開始即為第一筆測試資料,每行不會超過1024個字元,每組測試資料中間用五個連續等號'=' 的一行來作分隔。每組測試資料之中絕不會有五個連續等號'=' 出現。

輸出說明:
  每組測試資料輸出一行,每行有三個數字,分別代表一組測試資料中有幾行,幾個字和幾個字元,每個數字之間請用一個空白隔開。

輸入範例:
2
This is a sample input.
Hello World!!
=====
The speech by Hunyak, translated, is:
"What am I doing here?
They say, the famous Hungarian police,
that I held down my husband and chopped off his head.

But I didn't do it, I am not guilty.
I can't believe that Uncle Sam says I did it.
They say I didit, but really I didn't."


輸出範例:
2 7 36
8 55 270

2012年9月3日 星期一

撲克牌的判斷

輸入5張牌
判斷是什麼牌型。

輸入:
黑桃A 黑桃2 黑桃3 黑桃4 黑桃5

輸出:
同花順

大數費氏函數


輸入一正整數N,並用大數加法的方式輸出第N項費氏函數。



第一項為 1
第二項為 1
第三項為 2


輸入:
70

輸出:
190392490709135

2012年9月2日 星期日

99正式 Problem 1-2

本試題輸入檔為一篇中文文章,文章內容可能包括「中文」及若干「全型符號」。文章中可能使用的「全型符號」包括「,」、「。」、「;」、「、」、「!」及「?」6種。在中文中有若干文字,如「臺」與「台」,在某些時候意義相同,但在本題中,只要是字碼不同,選手都應視為「不同字」處理。請由程式讀入給定的中文文章,並作以下的統計:



子題 2. 8%)【使用路徑:c:\Problem1\子題 2\】【程式名稱p12】請選手在讀入的文章中,統計「出現次數最多」且「包含 2個中文字」的「詞」。在文章中,假設所有「兩兩相鄰的中文字」均可視為一個「詞」。本題所要統計的「詞」,只包括 2個中文字,其中不包含任何「全型符號」;我們也假設,一個「詞」不一定只出現在同一行中,也可能被切斷分隔在文章的前、後 2行。例如,有一篇文章內容為:
我們是學生。今天要上學。
在此文章中,所有包括 2個字的「詞」有:「我們」、「們是」、「是學」、「學生」、「生。」、「。今」、「今天」、「天要」、「要上」、「上學」及「學。」共 11組。雖然有些「詞」並不具明顯意義,如:「們是」、「是學」、「天要」及「要上」,但本題仍將其視為一種「詞」,並加入統計。但是「生。」、「。今」及「學。」等 3者,因為其中包括「全型符號」,則不算是「詞」,不列入統計。請選手統計並輸出出現次數最多、只包括 2個中文字的「詞」。輸入說明:第 1行表示文章的行數,第 2行開始為文章的內容。文章不超過 20行,每行不超過 50個中文字(含符號),而文章總字數不超過1000字。
輸出說明:若統計結果只有「 1個」最多出現次數者,則以 1行輸出「出現次數最多的『詞』」及其「出現次數」。但若有「多個」最多出現次數者,則以多行輸出。每一行輸出 1個「詞」及其「出現次數」,輸出資料間以至少 1個空白隔開。
輸入檔案 1:【檔名:in1.txt
8


為達成永續發展的目標,行政院規劃六年國家重點發展計畫,由教育部規劃的永續
校園推廣計畫,為建立一個進步、安全、衛生、健康、人性化的學習環境空間為,
並於擴大內需刺激景氣的期程內,加速推行校園公共工程改造計畫,藉由突破傳統
校園封閉的環境與制式管理原則下,整合社區共同意識、建立社區風貌、拓展生態
旅遊等課題,改造校園環境成為具有社區特質的公共活動空間,結合校園綠色技術
實施應用,轉化國內相關產業技術,進而增進綠色產業推廣效益,落實擴大內需進
而促進產業升級與提振國內景氣之功效,從而發揮永續台灣、環境教育之積極意義
與促成教育改革之目的。
輸入檔案 2:【檔名:in2.txt
8

台灣地區資源短缺,興建大型水庫使用現階段推行不易,替代水源的之開發與再利用
已成為未來資源開發的之重要途徑,推動節約用水,推廣再利用的中水系統,
使全國平均之人均用水量逐步降至每日使用二百五十公升以下。落實國家水資源永
續經營之理念,水利署推動雨水利用及生活雜排水回收再使用增加替代水源使用,
並委託台灣雨水利用協會針對學界及各級學校相關人員,依各縣市所在之地理位置劃分
北中南三區各辦理一場次雨水貯集使用及生活雜排水再利用講習演討會議,將邀請國內相關
領域有豐碩成果與使用經驗之專家學者擔任主講員,對國內教育單位相關人員,以水資源
永續利用、雨水貯集利用、生活雜排水再使用及節約用水等議題進行講習與研討。
輸出檔案:【檔名:out.txt
校園 5

利用 7
使用 7 

99正式 Problem 1:文章的用字統計

本試題輸入檔為一篇中文文章,文章內容可能包括「中文」及若干「全型符號」。文章中可能使用的「全型符號」包括「,」、「。」、「;」、「、」、「!」及「?」6種。在中文中有若干文字,如「臺」與「台」,在某些時候意義相同,但在本題中,只要是字碼不同,選手都應視為「不同字」處理。請由程式讀入給定的中文文章,並作以下的統計:



子題 1. 8%)【使用路徑:c:\Problem1\子題 1\】【程式名稱:p11】請統計文章中使用的「中文字」及其「出現次數」。文章中除了「中文字」,其餘符號均不列入統計。請選手輸出「出現次數最多」的中文字及其出現次數。若有多個中文字之統計次數均為「最多」時,請將其全部輸出,其輸出之前後順序不限制。
輸入說明:第 1行表示文章的行數,第 2行開始為文章的內容。文章不超過 20行,每行不超過 50個中文字(含符號),而文章總字數不超過 1000字。
輸出說明:若統計結果只有「 1個」最多出現次數者,則以1行輸出最多出現次數的「中文字」及其「出現次數」。但若有「多個」最多出現次數者,則以多行輸出。每一行資料輸出1個「中文字」及其「出現次數」,輸出資料間以至少 1個空白隔開。
輸入檔案 1:【檔名:in1.txt
8

為達成永續發展的目標,行政院規劃六年國家重點發展計畫,由教育部規劃的永續
校園推廣計畫,為建立一個進步、安全、衛生、健康、人性化的學習環境空間為,
並於擴大內需刺激景氣的期程內,加速推行校園公共工程改造計畫,藉由突破傳統
校園封閉的環境與制式管理原則下,整合社區共同意識、建立社區風貌、拓展生態
旅遊等課題,改造校園環境成為具有社區特質的公共活動空間,結合校園綠色技術
實施應用,轉化國內相關產業技術,進而增進綠色產業推廣效益,落實擴大內需進
而促進產業升級與提振國內景氣之功效,從而發揮永續台灣、環境教育之積極意義
與促成教育改革之目的。


輸入檔案 2:【檔名:in2.txt
8

台灣地區資源短缺,興建大型水庫使用現階段推行不易,替代水源的之開發與再利用
已成為未來資源開發的之重要途徑,推動節約用水,推廣再利用的中水系統,
使全國平均之人均用水量逐步降至每日使用二百五十公升以下。落實國家水資源永
續經營之理念,水利署推動雨水利用及生活雜排水回收再使用增加替代水源使用,
並委託台灣雨水利用協會針對學界及各級學校相關人員,依各縣市所在之地理位置劃分
北中南三區各辦理一場次雨水貯集使用及生活雜排水再利用講習演討會議,將邀請國內相關
領域有豐碩成果與使用經驗之專家學者擔任主講員,對國內教育單位相關人員,以水資源
永續利用、雨水貯集利用、生活雜排水再使用及節約用水等議題進行講習與研討。
輸出檔案:【檔名:out.txt
 7

 17 
 17