in.txt
410709600286035097007000200000501040030007528900000100740203069168000050300008014
000500010008603000090070308000000200005016804034200001040008000000100795760952000
out.txt
4 1 3 7 2 9 6 8 5
2 8 6 1 3 5 4 9 7
5 9 7 8 4 6 2 3 1
8 7 2 5 6 1 9 4 3
6 3 1 4 9 7 5 2 8
9 5 4 3 8 2 1 7 6
7 4 5 2 1 3 8 6 9
1 6 8 9 7 4 3 5 2
3 2 9 6 5 8 7 1 4
4 7 3 5 8 9 6 1 2
1 5 8 6 2 3 9 4 7
2 9 6 4 7 1 3 5 8
6 1 7 8 4 5 2 3 9
9 2 5 3 1 6 8 7 4
8 3 4 2 9 7 5 6 1
5 4 9 7 3 8 1 2 6
3 8 2 1 6 4 7 9 5
7 6 1 9 5 2 4 8 3
2011年9月25日 星期日
數獨
數獨說明(略)。
請設計一個程式,可以幫助玩家提示空格中尚可填入的數字。
例如,(如輸入範例test3.txt),第5行第3列的位置尚可填入1這個數字;第6行第7列的位置尚可填入7與8這兩個數字;而第5行第5列的位置已有數字填入則輸出0。
輸入說明:
輸 入的第一列到第九列為數獨資料,每一列由九個數字所組成。數字1到9為已填入的數字,0代表尚未填入數值的空格,每個數字與數字間的區隔為一個空白符號。 第十列及以後的資料為要提示位置的座標(座標的定義方式為右上角為9 1,左下角為1 9,第一個數字代表行,第二個數字代表列),當為0 0 時表示結束。
輸入範例:in.txt
4 0 0 8 0 5 0 1 0
2 0 0 0 0 9 0 8 0
6 0 8 0 0 3 4 9 0
0 0 5 0 2 0 6 0 0
0 0 1 0 7 0 9 0 0
0 0 7 0 8 0 3 0 0
0 0 7 0 8 0 3 0 0
0 9 0 1 0 0 0 0 2
0 8 0 4 0 0 0 0 9
0 3 0 6 0 2 0 0 7
5 3
6 7
5 5
0 0
輸出說明:每個提示位置有一列輸出結果,表示尚可填入的數字,請由小到大排列。每個數字與數字間的區隔為一個空白符號。若該位置已有填入數字,或找不到提示的數字則輸出0。
輸出範例:out.txt
1
7 8
0
額外說明:(從學長那邊貼過來的,參考)
1.這題雖然前面已經做過數獨遊戲了,但是一來每個人還沒做解題的部份;二來用以往的競賽題目,來了解題目可以怎麼出。
2.還是要再提醒每個人,不可以只用這樣的一個例子去解而已。要自己再加輸入例子,再將輸出的結果也一併貼出來。
3.尤其要注意「邊界值」,像這題的1 1和9 9或是9 1或是1 9。像前一題總和檢查時,要注意的邊界值就是用100個數字的數列及用2個數字的數列來當成是輸入例子。
2011年9月22日 星期四
保齡球計分板
在世界各地,保齡球是相當受歡迎的運動項目之一,藉著球道上滾動的球,來碰倒球道
上的球瓶,勝負以擊倒球瓶之多寡的計分來判定。請你根據下面的計分規則,寫一個保齡球
計分程式,規則如下:
一、每一局共10 格,依序完成每1 格。
二、每格的分數將累計到下1 格。
三、第1 至9 格之計分:每1 格在2 球以內,將全部10 個球瓶擊倒為原則,分數計
算方式可分為:
1. 全倒(Strike):第1 球就將全部球瓶擊倒,即完成一格。分數計算分式為10 分,
再加上下2 球的擊倒瓶數。
2. 補全倒(Spare):第1 球未全倒時,再打1 球將剩餘球瓶全部擊倒。分數計算
方式為10 分,再加下1 球的擊倒瓶數。
3. 打完第 1 球後,第2 球如未將剩餘之球瓶全部擊倒,分數為第1 球加第2 球
擊倒之球瓶數。
四、第10 格計分方法:如果前2 球為全倒或補全倒,可再加打1 球,最多打3 球。
五、計分劃記的符號代表意義如下:
1. 全倒以記號『X』來代表。
2. 補全倒以記號『/』來代表。
3. 數字代表擊倒的球數。
4. 擊倒球數為 0 時以『-』來代表。
舉例來說:
每格擊球 7- 8/ X 8- X X X X X 8/9
分數 7 27 45 53 83 113 143 171 191 210
輸入說明:
第一行的數字,表示有幾個計分板要計分,第二行開始的每一行,為一個獨立的計分板。
每一行包含10 格擊球結果。每格以一個空白作為區隔。
輸出說明:
對輸入的每個計分板,分別計算出後的總分數。
輸入範例:
2
7- 8/ X 8- X X X X X 8/9
X X X X X X X X X XXX
輸出範例:
210
300
上的球瓶,勝負以擊倒球瓶之多寡的計分來判定。請你根據下面的計分規則,寫一個保齡球
計分程式,規則如下:
一、每一局共10 格,依序完成每1 格。
二、每格的分數將累計到下1 格。
三、第1 至9 格之計分:每1 格在2 球以內,將全部10 個球瓶擊倒為原則,分數計
算方式可分為:
1. 全倒(Strike):第1 球就將全部球瓶擊倒,即完成一格。分數計算分式為10 分,
再加上下2 球的擊倒瓶數。
2. 補全倒(Spare):第1 球未全倒時,再打1 球將剩餘球瓶全部擊倒。分數計算
方式為10 分,再加下1 球的擊倒瓶數。
3. 打完第 1 球後,第2 球如未將剩餘之球瓶全部擊倒,分數為第1 球加第2 球
擊倒之球瓶數。
四、第10 格計分方法:如果前2 球為全倒或補全倒,可再加打1 球,最多打3 球。
五、計分劃記的符號代表意義如下:
1. 全倒以記號『X』來代表。
2. 補全倒以記號『/』來代表。
3. 數字代表擊倒的球數。
4. 擊倒球數為 0 時以『-』來代表。
舉例來說:
每格擊球 7- 8/ X 8- X X X X X 8/9
分數 7 27 45 53 83 113 143 171 191 210
輸入說明:
第一行的數字,表示有幾個計分板要計分,第二行開始的每一行,為一個獨立的計分板。
每一行包含10 格擊球結果。每格以一個空白作為區隔。
輸出說明:
對輸入的每個計分板,分別計算出後的總分數。
輸入範例:
2
7- 8/ X 8- X X X X X 8/9
X X X X X X X X X XXX
輸出範例:
210
300
2011年9月19日 星期一
2011年9月15日 星期四
2011年9月13日 星期二
2011年9月5日 星期一
九月小考
100程式設計選手隊小考
題1:排列組合
有x顆紅色小玻璃珠和y顆黑色小玻璃珠在一個黑箱子,一把取出z個,請寫程式列出共有幾種組合。
輸入說明:in1.txt只有1行數字,分別表示x,y,z。
5,3,3
輸出說明:以紅黑來表示玻璃珠,輸出到out1.txt
紅紅紅
紅紅黑
紅黑黑
黑黑黑
題2:數字方陣
請將數字1,2,3,…,n^2,排成n*n的正方形矩陣,使用每個橫列直列和兩個對角線加起來的和,都相等。(n可以是3,5,7,9)
輸入:in2.txt輸入n值
5
輸出:out2.txt,為使數字對齊,個位數請加個0
17 24 01 08 15
23 05 07 14 16
04 06 13 20 22
10 12 19 21 03
11 18 25 02 09
題3:倍數問題
有一個50位的大數,請寫程式計算它是不是197的倍數。
輸入:in3.txt每行是個50位數的大數,0表示結束。
19719719719719719719719719719719719719719719719700
38400000000000000000000000000000000000000000000001
0
輸出:out3.txt
是
不是
2011年9月4日 星期日
奇數魔方陣
8 1 6
3 5 7
4 9 2
上面的矩陣中直排橫列對角線的總和都是15
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
上面的矩陣中直排橫列對角線的總和都是65
輸入說明:
輸入一數 n (0<n<10000,且n mod 2 =1)
輸出說明:
請照題目規則,輸出n行n列的矩陣,且直行橫列對角線總和都要相等。
輸入範例:
7
輸出範例:
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20
2011年9月1日 星期四
我愛偶數
內容 :
文文很喜歡偶數,他甚至有收集偶數的習慣。你給他一個範圍的連續整數,他就會把其中的偶數留下來收藏。如今他又拿到了一個範圍的整數,請問他這次收藏了幾個偶數?對文文來說,0 也算是一個偶數哦!
輸入說明 :
輸入只有一行,其中含有兩個由空白隔開的整數 a, b (0 ≤ a ≤ b ≤ 2147483647)。
輸出說明 :
輸出一個整數,代表 a 與 b 之間 (含 a 與 b) 一共有多少個偶數。
範例輸入 :
若題目沒有特別說明,則應該以多測資的方式讀取,若不知如何讀取請參考 a001 的範例程式。
1 4
範例輸出 :
2
提示 :
你可以只用算術運算子,而不用 if 指令來完成這題嗎?
訂閱:
文章 (Atom)