Fork me on GitHub

格子位置 --水题

描述
输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中,与格子(i,j)同行、同列、同一对角线的所有格子的位置。
输入描述:
  输入共三行,分别输入自然数N,i,j。其中保证N<=24且1<=i<=N,1<=j<=N。
输入样例:
4
2
3
输出描述:
  输出共四行。第一行为与格子(i,j)同行的所有格子的位置,第二行为与格子(i,j)同列的所有格子的位置,第三行为从左上到右下对角线上的格子的位置,第四行为从左下到右上对角线上的格子的位置。
输出样例:
(2,1) (2,2) (2,3) (2,4)
(1,3) (2,3) (3,3) (4,3)
(1,2) (2,3) (3,4)
(1,4) (2,3) (3,2) (4,1)
package list;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int N = input.nextInt();                                                        //数据的读入
		int i = input.nextInt();                                                          //同上
		int j = input.nextInt();                                                         //同上
		int arr[][] = new int[N][N];                                                   //创建一个二维的数组
		int temp1, temp2;
		for (int x = 1; x <= N; x++) {                                               //同一行的输出
			System.out.print("(" + i + "," + x + ")");
		}
		System.out.println();
		for (int x = 1; x <= N; x++)  {                                            //同一列的输出
			System.out.print("(" + x + "," + j + ")");
		}
		System.out.println();
		temp1 = i;
		temp2 = j;
		while (temp1 != 1 && temp2 != 1) {                            //是(temp1,temp2)为最左边的坐标
			temp1--;
			temp2--;
		}
		while (temp1 <= N && temp2 <= N) {                        //遍历左上到右下对角线一遍
			System.out.print("(" + temp1 + "," + temp2 + ")");
			temp1++;
			temp2++;
		}
		System.out.println();
		temp1 = i;
		temp2 = j;
		while(temp1!=1&&temp2!=N){                                   //使(temp1,temp2)为最左边的坐标
			temp1--;temp2++;
		}
		while (temp1 <= N && temp2 >= 1) {                        //遍历左下到右上对角线一遍
			System.out.print("(" + temp1 + "," + temp2 + ")");
			temp1++;
			temp2--;
		}
	}
}
posted @ 2019-07-07 22:17  cznczai  阅读(266)  评论(0编辑  收藏  举报