csharp高级练习题:国际象棋乐趣#6:国际象棋主教梦【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

mac2026-03-20  3

csharp高级练习题:国际象棋乐趣#6:国际象棋主教梦【难度:3级】:

任务

在ChessLand有一个小,但骄傲的国际象棋主教有一个反复出现的梦境.    在主教发现自己上的梦想N×具有沿每个边缘的反射镜M的棋盘上,并且它不是一个主教但光的射线.光移动仅沿对角线(主教无法想象任何其他类型的移动,即使在其梦中)这光线,它永远不会停止,一旦它到达边缘或棋盘的角落从它反映和移动上.

给定的初始位置和所述光线的方向,发现其位置之后k步骤,其中一个步骤是指无论是从一个小区移动到相邻的一个或从所述板的一个角反射.

示例

对于boardSize = [3,7],initPosition = [1,2],initDirection = [-1,1],且k = 13,输出应该是’[0,1]`.

这里是主教的路径:

[1,2] - > [0,3] - (从顶部边缘反射)           - > [0,4] - >并[1,5] - > [2,6] - (从右下角反射)           - > [2,6] - >并[1,5] - > [0,4] - (从顶部边缘反射)           - > [0,3] - >并[1,2] - >并[2,1] - (从底部边缘反射)           - > [2,0] - (从左侧边缘反射)           - > [1,0] - > [0,1]

输入输出

- [输入]整数数组boardSize

两个整数的数组,rows和columns,分别数量.行是通过从整数’0至boardSize [0]编号 - 1,列由整数编号从'0至boardSize [1] - 1(包括两端).

约束:1≤boardSize [I]≤20.

- [输入]整数数组initPosition

两个整数的数组,该row的指数与column其中主教最初代表,分别.

约束:`0≤initPosition [I]

编程目标:

namespace myjinxin { using System; public class Kata { public int[] ChessBishopDream(int[] BoardSize, int[] InitPosition, int[] InitDirection, int k){ //coding and coding.. } } }

测试样例:

namespace myjinxin { using NUnit.Framework; using System; [TestFixture] public class myjinxin { var kata=new Kata(); Assert.AreEqual(new int[]{0, 1},kata.ChessBishopDream(new int[]{3, 7},new int[]{1, 2},new int[]{-1, 1},13)); Assert.AreEqual(new int[]{0, 1},kata.ChessBishopDream(new int[]{1, 2},new int[]{0, 0},new int[]{1, 1},6)); Assert.AreEqual(new int[]{1, 0},kata.ChessBishopDream(new int[]{2, 2},new int[]{1, 0},new int[]{1, 1},12));

最佳答案(多种解法):

点击查看答案

更多关联题目:

csharp基础练习题:旅行箱包装【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练 csharp基础练习题:无限嵌套自由基【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢 题目收集至https://www.codewars.com/ https://www.codewars.com/kata/chess-fun-number-6-chess-bishop-dream

最新回复(0)