2010年7月30日 星期五

排列組合二

排列組合二
從檔案in.txt第一列讀入排列組合的項目n個,再讀入第二列數字m,從n個項目中,取出m個項目的組合,全部輸出到out.txt中。
輸入範例:
a b c 1 x
2

輸出範例:
ab
ac
a1
ax
bc
b1
bx
c1
cx
1x

排列組合一

排列組合一
從檔案 in.txt 讀入排列組合的項目,將所有可能的排列輸出到out.txt。
輸入範例:
a b c 1

輸出範例:
abc1
bac1
cab1
1abc
acb1
a1bc
bca1
b1ac
cba1
c1ab
1bac
1cab
ab1c
ba1c
ca1b
1acb
ac1b
a1cb
bc1a
b1ca
cb1a
c1ba
1bca
1cba

2010年7月23日 星期五

兩直線間的關係

兩直線間的關係
在2維平面中兩條直線間的關係共有3種:
1.相交於一點
2.重疊
3.平行
輸入4個點,分別為兩條直線。
輸出兩條直線的關係。
輸入說明:
每組輸入包含8個數字,x1 y1 x2 y2 x3 y3 x4 y4 ,代表4個點(x1,y1)..(x4,y4)
一條直線會通過(x1,y1)、(x2,y2), 另一條線通過另外兩點。
輸出說明:
請輸出1或2或3,分別代表1.相交於一點,2.重疊,3.平行。
輸入範例:
4 2 0 2 1 -1 2 2
1 3 2 4 -1 1 -2 0
3 5 0 2 1 5 -1 3
輸出範例:
1
2
3

文字繞圈圈


文字繞圈圈
輸入一個字串,請找出可以將這個字串填入的最小正方形,而填入的方式是由正方形的左上角開始,順時鐘方向,由外向內填入。
輸入說明:
 每組輸入包含一列字串,字串內的字元都是英數字,長度小於100。
輸出說明:
 對於每組測試資料,輸出填入最小正方形後的結果,每組測試資料以一列空白隔開。
輸入範例:
 0123456789abcde
1111111111111111222222223

輸出範例:
0123
bcd4
a e5
9876

11111
12221
12321
12221
11111

2010年7月16日 星期五

數獨

數獨
 數獨說明(略)。
 請設計一個程式,可以幫助玩家提示空格中尚可填入的數字。
 例如,(如輸入範例test3.txt),第5行第3列的位置尚可填入1這個數字;第6行第7列的位置尚可填入7與8這兩個數字;而第5行第5列的位置已有數字填入則輸出0。
 輸入說明:
 輸入的第一列到第九列為數獨資料,每一列由九個數字所組成。數字1到9為已填入的數字,0代表尚未填入數值的空格,每個數字與數字間的區隔為一個空白符號。第十列及以後的資料為要提示位置的座標(座標的定義方式為右上角為9 1,左下角為1 9,第一個數字代表行,第二個數字代表列),當為0 0 時表示結束。
 輸入範例:test3.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。
 輸出範例:result3.txt
1
7 8
0

額外說明:
1.這題雖然前面已經做過數獨遊戲了,但是一來每個人還沒做解題的部份;二來用以往的競賽題目,來了解題目可以怎麼出。
2.還是要再提醒每個人,不可以只用這樣的一個例子去解而已。要自己再加輸入例子,再將輸出的結果也一併貼出來。
3.尤其要注意「邊界值」,像這題的1 1和9 9或是9 1或是1 9。像前一題總和檢查時,要注意的邊界值就是用100個數字的數列及用2個數字的數列來當成是輸入例子。

熊掌
數獨輸入資料錯誤修正

總和檢查

總和檢查
 請檢查一個數列中,尋找任兩個數字相加後的和是否會等於輸入的檢查值。
 例如,有一個數列為8,20,27,17,13,28,35,31,若輸入的檢查值為48,會找到20及28兩個數,相加的和為48;反之若輸入的檢查值為50,則會找不到配對的數字。
 輸入說明:
 輸入之第一列為下一列數列中的個數,第二列為數列資料。每個數字與數字間的區隔為一個空白符號。第三列及以後的資料為輸入的檢查值,每一列有一個檢查值,當為0時表示結束。
 輸入範圍:
 輸入的數列最少有2個數字,最多不超過100個。每個數列中的數字皆大於0,小於1000,且不重覆。
 輸入範例:test2.txt
8
8 20 27 17 13 28 35 31
48
50
59
0
 輸出說明:
 每個檢查值有一個輸出結果,若有匹配的檢查值,則輸出為1,反之為-1。
 輸出範例:result2.txt
1
-1
1

額外說明:
1.請每人在貼上來的程式裡,form_load()或form_activate()中的第一行要加上,
form.hide
最後一行要加上,
end
,也就是說,執行時,什麼都看不到,也會自動結束。
2.這幾個星期,原則以每星期2題,主要利用星期六日來做。
3.學科考試以總複習的第4章全部。所以,全部的題目都要做,輔導課結束,拿給我檢查,當然,如果有不懂的題目也可以問的。

熊掌