標籤:string sys 輸入輸出 格式 next a演算法 問題 add 輸出
問題描述 輸入三個自然數N,i,j (1<=i<=N,1<=j<=N),輸出在一個N*N格的棋盤中,與格子(i,j)同行、同列、同一對角線的所有格子的位置。輸入格式 輸入共三行,分別輸入自然數N,i,j。其中保證N<=24且1<=i<=N,1<=j<=N。輸出格式 輸出共四行。第一行為與格子(i,j)同行的所有格子的位置,第二行為與格子(i,j)同列的所有格子的位置,第三行為從左上到右下對角線上的格子的位置,第四行為從左下到右上對角線上的格子的位置。範例輸入4
2
3範例輸出(2,1) (2,2) (2,3) (2,4)
(1,3) (2,3) (3,3) (4,3)
(1,2) (2,3) (3,4)
(4,1) (3,2) (2,3) (1,4)輸入輸出範例解釋 n=4,i=2,j=3表示了棋盤中的第二行第三列的格子,如:
| 第1列 |
第2列 |
第3列 |
第4列 |
|
| |
|
|
|
第1行 |
| |
|
(2,3) |
|
第2行 |
| |
|
|
|
第3行 |
| |
|
|
|
第4行 |
(2,1) (2,2) (2,3) (2,4) {同一行上格子的位置}
(1,3) (2,3) (3,3) (4,3){同列列上格子的位置}
(1,2) (2,3) (3,4){左上到右下對角線上的格子的位置}
(4,1) (3,2) (2,3) (1,4) {左下到右上對角線上的格子的位置} 代碼::
package 藍橋杯java演算法訓練;
import java.util.Scanner;
public class _3格子位置 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N,i,j;
N = scanner.nextInt();
i = scanner.nextInt();
j = scanner.nextInt();
//同行
for (int j2 = 1; j2 <= N; j2++) {
for (int k = 1; k <= N; k++) {
if (j2 == i) System.out.print("("+j2+","+k+")");
}
}
System.out.println();
//同列
for (int j2 = 1; j2 <= N; j2++) {
for (int k = 1; k <= N; k++) {
if (k == j) System.out.print("("+j2+","+k+")");
}
}
System.out.println();
//從左上到右下對角線上的格子的位置
for (int j2 = 1; j2 <= N; j2++) {
for (int k = 1; k <= N; k++) {
if ((k-j2) ==(j-i) || (j2-k)==(i-j)) System.out.print("("+j2+","+k+")");
}
}
System.out.println();
//從左下到右上對角線上的格子的位置
for (int j2 = N; j2 >= 1; j2--) {
for (int k = N; k >= 1; k--) {
if ((k+j2) ==(j+i) ) System.out.print("("+j2+","+k+")");
}
}
}
}
java演算法 藍橋杯 格子位置