美文网首页
人大信息学院2017年夏令营机试题目(二)-皇后攻击范围

人大信息学院2017年夏令营机试题目(二)-皇后攻击范围

作者: 一个Enchancer | 来源:发表于2018-04-22 11:29 被阅读0次

前言
题目来自:https://wenku.baidu.com/view/943af216ba68a98271fe910ef12d2af90242a8b2.html

第二题:皇后攻击范围
题面:在国际象棋中,皇后的攻击范围包括所在横线、所在竖线、所在左上右下对角线和所在右上左下对角线。输入皇后所在坐标,请输出该皇后的攻击范围。输入共一行,为一个坐标值,输出共四行,所在横线、所在竖线、所在左上右下对角线和所在右上左下对角线各一行。若其中某条线没有可攻击范围则该行空一行,同一行内按字典序排列。


image.png

解:

#include "stdio.h"

void range(int x,char y){
    char ys[8];
    int xs[8];
    int i,j;
    int start,end;
    for(i=1;i<9;i++)
        ys[i-1]='A'-1+i;
    for(i=1;i<9;i++)
        xs[i-1]=i;

    //行
    j=y-'A';
    for(i=0;i<8;i++)
        if(i==x-1)
            continue;
        else 
            printf("%c%d ",ys[j],xs[i]);
        printf("\n");
    //列
    i=x-1;
    for(j=0;j<8;j++)
        if(ys[j]==y)
            continue;
        else 
            printf("%c%d ",ys[j],xs[i]);
    printf("\n");
    //左上右下
    start=(7-(x-1))<(y-'A')?(7-(x-1)):(y-'A');
    for(i=x-1+start,j=y-'A'-start;i>=0&&j<8;i--,j++)
        if(i==x-1||j==y-'A')
            continue;
        else
            printf("%c%d ",ys[j],xs[i]);
    printf("\n");
    //右上左下
    
    start=x-1<y-'A'?x-1:y-'A';
    for(i=x-1-start,j=y-'A'-start;i<8&&j<8;i++,j++)
        if(i==x-1||j==y-'A')
            continue;
        else
            printf("%c%d ",ys[j],xs[i]);
    printf("\n");
}
void main(){
    int x;
    char y;
    char input[2];
    scanf("%c%c",&input[0],&input[1]);
    y=input[0];
    x=input[1]-'1'+1;
    //printf("%c%d",y,x);
    range(x,y);
    system("pause");
}

结果:


image.png image.png

相关文章

  • 人大信息学院2017年夏令营机试题目(二)-皇后攻击范围

    前言题目来自:https://wenku.baidu.com/view/943af216ba68a98271fe9...

  • 人大信息学院2017年夏令营机试题目(一)

    前言题目来自:https://wenku.baidu.com/view/943af216ba68a98271fe9...

  • 51.N皇后

    题目描述: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图...

  • 52.N皇后II

    题目描述: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图...

  • 51.N皇后(回溯法)

    题目n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 ...

  • Leetcode 精选之搜索( N皇后)

    题目描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为...

  • LintCode 33. N皇后问题

    题目描述 n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击(任意两个皇后不能位于同一行,同一列...

  • 回溯之N皇后

    N皇后问题:在 n x n 的棋盘上放置 N 个皇后,使其不能相互攻击。 1. 问题分析 皇后相互攻击是指:在皇后...

  • 补充

    八皇后 题目:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜...

  • 韩小雅的六任男朋友(上)

    承办每年的主持人大赛历来是信息学院新闻部的传统,06年也不例外,只不过那年的信息学院主持人大赛举办在破旧蹩脚的机械...

网友评论

      本文标题:人大信息学院2017年夏令营机试题目(二)-皇后攻击范围

      本文链接:https://www.haomeiwen.com/subject/yiwqlftx.html