2011年9月26日 星期一

解數獨(初中階)

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 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

2011年9月15日 星期四

音源線III.




這是一種超高科技的音源線,就是有一個輸入端m個輸出端的線。
如今,有人想要在畢旅同時使多台音響播放,請問他需要幾條音源線才夠 ?


輸入說明:
只有一行,代表有n台音響 (0<n<32768),及線的輸出端數量m,(0<m<101)


輸入範例:
5 4

輸出範例:
2

音源線II.



這是一種"1公3母"的音源線,就是有一個輸入端三個輸出端的線。
如今,有人想要在畢旅同時使多台音響播放,請問他需要幾條音源線才夠 ?


輸入說明:
只有一行,代表有n台音響 ,  0<n<32768


輸入範例:
2
輸出範例:
1

2011年9月13日 星期二

音源線

這是一種"1公2母"的音源線,就是有一個輸入端兩個輸出端的線。
如今,有人想要在畢旅同時使多台音響播放,請問他需要幾條音源線才夠 ?


輸入說明:
只有一行,代表有n台音響 ,  0<n<32768


輸入範例:
1024
輸出範例:
1023

2011年9月5日 星期一

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


九月小考




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) 一共有多少個偶數。
 
範例輸入 :help
若題目沒有特別說明,則應該以多測資的方式讀取,若不知如何讀取請參考 a001 的範例程式。
1 4
範例輸出 :

2
提示 :
你可以只用算術運算子,而不用 if 指令來完成這題嗎?