做游戏钓鱼网站网络营销中的四种方法
题目描述:
输入三个自然数N,i,j (1< =i< =N,1< =j< =N),输出在一个N*N格的棋盘中,与格子(i,j)同行、同列、同一对角线的所有格子的位置。
样例解释
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 lanqiao;import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {int N = sc.nextInt(), i = sc.nextInt(), j = sc.nextInt();//同一行上格子的位置for(int k = 1; k <= N; k++){System.out.printf("(%d,%d)", i, k);}System.out.println();//同列列上格子的位置for(int k = 1; k <= N; k++){System.out.printf("(%d,%d)", k, j);}System.out.println();//左上到右下对角线上的格子的位置int x = 1, y = j-(i-1);while(x <= N && y <= N){if(x >= 1 && y >= 1)System.out.printf("(%d,%d)", x++, y++);else{x++;y++;}}System.out.println();//左下到右上对角线上的格子的位置x = N; y = i+j-x;while(x >= 1 && y <= N){if(x <= N && y >= 1)System.out.printf("(%d,%d)", x--, y++);else{x--;y++;}}System.out.println();}}
}