# | Problem | Pass Rate (passed user / total user) |
---|---|---|
12996 | Reversi |
|
13400 | Connect Four |
|
13795 | Prime Factorization |
|
13796 | Struct - Complex Number |
|
Description
“黑白棋”是一種雙人對弈的棋類遊戲。棋盤共有8行8列共64格。開局時,棋盤正中央的4格先置放黑白相隔的4枚棋子。雙方輪流落子。只要落子和棋盤上任一枚己方的棋子在一條線上(橫、直、斜線皆可)夾著對方棋子,就能將對方的這些棋子轉變為我己方。不能在不能夾住對手的任一顆棋子的地方落子。遊戲在雙方都不能再落子,或棋盤已無空格的情況下結束,子多的一方勝。
給定一個棋局,以及黑方或白方下一個落子的位置,請試著模擬出落子後棋局的變化。
Note:
- 利用字元 ‘_’ 來代表棋盤中的空格
- 利用字元 ‘x’ 來代表棋盤中的黑子
- 利用字元 ‘o’ 來代表棋盤中的白子
- 字元之間存在著空格將其分開
舉例:
- 給定的棋局範例
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ o x _ _ _
_ _ _ x x x _ _
_ _ _ _ x o _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
- 白子落在(5, 3)後的棋局變化
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ o x _ _ _
_ _ _ o x x _ _
_ _ _ o o o _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
Input
一個棋局;一個字元用來表示現在是黑方或白方落子;兩個整數用來表示落子的位置。
Note:
- ‘x’ 表示現在為黑方落子;‘o’ 表示現在為白方落子
- 測資中不會出現不合遊戲規則的落子位置
Output
落子後的棋局
輸出比須符合以下格式:
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
Note:
- 輸出的最後必須要有一個換行符號 ('\n')
- 字元 c 為 ‘_’、‘x’、‘o’ 中一種
Sample Input Download
Sample Output Download
Tags
Discuss
Description
“四子棋”是一個經典的桌上遊戲,桌面上有立著的屏風小盒子,盒子分成7欄並且分別有7個開口;遊戲開始後,兩名玩家分別持不同顏色的小圓片,並依序從開口投入圓片;圓片受地心引力影響會落至底部或其他棋子上;當其中一名玩家以4顆連續的棋子,以橫著、直著、斜著的任一種方式連成一線即獲勝
(Excerpted from wiki: https://en.wikipedia.org/wiki/Connect_Four)
給定一個棋局,以及黑白圓片下一個放入的位置;請試著計算出當該圓片落至定點時,跟該圓片相關的最大長度的連線為何
Note:
- 利用字元 ‘-’ 來代表棋盤中的空格
- 利用字元 ‘x’ 來代表棋盤中的黑方
- 利用字元 ‘o’ 來代表棋盤中的白方
Input
一個棋局;一個整數用來表示圓片落下的欄數,一個字元用來表示現在是黑方或白方
Note:
- ‘x’ 表示現在為黑色圓片;‘o’ 表示現在為白色圓片
- 測資中不會出現不合遊戲規則的放置方式;例如:不會放在已經滿了的欄位
- 欄位以序號 0 作為起始
Output
輸出比須符合以下格式:
Length
Note:
- 輸出的最後必須要有一個換行符號 ('\n')
- Length表示跟最後落子的圓片最大相關的連線長度
Sample Input Download
Sample Output Download
Tags
Discuss
Description
任何的(大於2的)正整數皆可以透過質因數分解,將該整數變成它質因數的乘積
e.g. 45 = 3*3*5, 1617 = 3*7*7*11
輸入一正整數 N,請輸出它質因數分解的結果
Hint:
- 先建一個質數表再去找 N 的質因數
Input
輸入符合以下格式:
N
Note:
- 2 <= N <= 20000
Output
輸出符合以下格式:
p1*p2*p3*...
Note:
- pi 為正整數 N 的質因數
- pi 按大小順序排列
- 輸出的最後必須要有一個換行符號 ('\n')
Sample Input Download
Sample Output Download
Tags
Discuss
Description
給定一個名為Complex(複數)的struct,如下列所示:
Matrix
- double real
- double imag
real 表示該複數實部的實數的值,imag 表示該複數虛部的實數的值
再給定主要執行程式 main.c (題號.c)、以及Header檔 function.h (題號.h);請試著完成Header檔中未實現的函式:Add()、Sub()、Mul()、Div()
Methods:
- Complex Add(Complex x, Complex y) – 將兩個複數相加並回傳(實部為兩複數實部相加,實部為兩複數虛部相加)
- Complex Sub(Complex x, Complex y) – 將兩個複數相減並回傳(實部為兩複數實部相減,實部為兩複數虛部相減)
- Complex Mul(Complex x, Complex y) – 將兩個複數相乘並回傳(實部為第一個複數實部平方減第二個複數的虛部平方,虛部為兩複數實部和虛部交叉相乘的和)
- Complex Div(Complex x, Complex y) – 將兩個複數相除並回傳(第一個複數乘上第二個複數的共軛複數 / 第二個複數乘上第二個複數的共軛複數的實部)
function.c
Input
輸入符合以下格式
op
r1 i1
r2 i2
無需處理輸入
Output
輸出符合以下格式
(real) + (imag)i
無需處理輸出