格子位置

格子位置

时间限制:1.0s  内存限制:512.0MB

问题描述:输入三个自然数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) {左下到右上对角线上的格子的位置}

代码如下:

#include <stdio.h>
#include <stdlib.h>
void show(int n,int i,int j);
int main()
{
	int n,i,j;
	scanf("%d %d %d",&n,&i,&j);
	if(1<=i&&i<=n&&1<=j&&j<=n)
		show(n,i,j);
	return 0;
}
void show(int n,int i,int j)
{
	int a,b,c;
	b=i;
	c=j;
	for(a=1;a<=n;a++)//输出同一行上的位置
	{
		printf("(%d,%d)",i,a);
	}
	printf("\n");
	for(a=1;a<=n;a++)//输出同一列上的位置
	{
		printf("(%d,%d)",a,j);
	}
	printf("\n");
	while(i>0&&j>0)//左上到右下对角线上的格子的位置
	{
		i--;j--;
	}
	i++;j++;
	while(i<=n&&j<=n)
	{
		printf("(%d,%d)",i,j);
		i++;j++;
	}
	printf("\n");
	i=b;
	j=c;
	while(i<=n&&j>0)//左下到右上对角线上的格子的位置
	{
		i++;j--;
	}
	i--;j++;
	while(i<=n&&j<=n&&i>0&&j>0)
	{
		printf("(%d,%d)",i,j);
		i--;j++;
	}
}

(全文完)

时间: 2024-10-26 06:53:24

格子位置的相关文章

java算法 蓝桥杯 格子位置

问题描述 输入三个自然数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)同列的所有格子的位置,第三行为从左上到右下对角线上的格子的位置,第四行为从左下到右上对角线上的格子的位置

02:同行列对角线的格子

02:同行列对角线的格子 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行.同列.同一对角线的所有格子的位置. 如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子,如下图: 第一列 第二列 第三列 第四列           第一行     (2,3)   第二行         第三行        

网格道路中的格子状态计算

一.分析 下图包含了由正方形格子组成的道路的全部形态.(没有斜向) 单个格子的状态共有6种: 已知构成道路的格子集合:[(x1,y1),(x2,y2)...(xn,yn)],(x,y)代表格子位置.计算道路上每个格子的状态.(格子坐标系,x右正,y上正) 因为每个格子有4个临边,对格子(x,y)有临边: 左边 L: (x-1, y) 上边 T: (x,y+1) 右边 R: (x+1, y) 下边 B: (x,y-1) 假设最终格子状态为s.计算过程: 1.设置s=无邻格 2.判断L,如果有格,则

同行列对角线的格子

传送门:http://noi.openjudge.cn/ch0108/02/ 总时间限制: 1000ms 内存限制: 65536kB 描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行.同列.同一对角线的所有格子的位置. 如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子,如下图: 当n=4,i=2,j=3时,输出的结果是: (2,1) (2,2) (2,3) (2,4)        

【泡泡堂】格子管理等

<1>很多人都玩过炸弹人或者泡泡堂,之前做了这个玩法,记录一下关键实现 <2>直接上Lua代码 1.维护每个格子上的物体 比如:BUFF类,宝箱,草箱,木箱,铁箱,炸弹,小怪... 用一个结构维护一个格子31*31=961,进入场景创建,离开释放掉 每个结构里面声明一张map缓存格子里面所有的物体 <物体类型,map<物体uid,true>> 2.计算炸弹爆炸所影响的格子(长宽不等的十字形) 炸弹有一个威力等级Force,计算规则为 Force*2+1 =

20170810 - 今日技能封装 - Q

需列入每日问题--题目思路回溯. 1 猜数字游戏思路是? 2 构造器,构建器是什么? 3 this只可以用在哪里? 4 new出来的是什么? 5 数组属于基本类型还是引用类型? 6 基本类型数组是什么类型数据? 7 如何创建引用类型数组? 8 引用类型数组内元素默认值为多少? 9 给引用类型数组元素赋值应如何编写? 10 cells[0] = new cell(2,5);cells[0]是什么类型数据,在哪?装了什么? 11 问cells[0].row为多少? cells[0] = cells[

20170810 - 今日技能封装 - A

需列入每日问题--题目思路回溯. 1 猜数字游戏思路是? 2 构造器,构建器是什么? 构造方法. 3 this只可以用在哪里? 类中方法里. 4 new出来的是什么? 都是对象. 5 数组属于基本类型还是引用类型? 引用类型,所以引用类型数组是引用类型. 6 基本类型数组是什么类型数据? 引用类型 7 如何创建引用类型数组? cell[] cells = new cell[4]; 8 引用类型数组内元素默认值为多少? null 9 给引用类型数组元素赋值应如何编写? cell[] cells =

算法笔记_183:历届试题 九宫重排(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记录数字,空格记为句点. 本题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达.如果无论多少步都无法到达,则输出-1. 输入格式 输入第一行包含

My First RPG Game总结二

背包栏打开点击的时候也会触发主角移动,解决办法 if (Input.GetMouseButtonDown(0)&&UICamera.hoveredObject==null) 鼠标点击NPC触发事件: 给npc添加box collider,在脚本中调用 private void OnMouseOver()当有鼠标指针落到npc上面就自动触发该函数 要想弹出任务框,还得将任务框的图片拖动到脚本中 public TweenPosition questTween; private void OnM