在c#中执行此功能的最简单方法是什么?

时间:2010-05-26 01:37:21

标签: c# algorithm function

假设我们有一个数组[5,5]

01,02,03,04,05
06,07,08,09,10
11,12,13,14,15
16,17,18,19,20
21,22,23,24,25

用户应该向函数发送2个值(start,searchFOR),例如(13,25) 该函数应以这种方式搜索该值

07,08,09
12,  ,14
17,18,19

如果在此级别中找不到该值,则会更高一级

01,02,03,04,05
06,  ,  ,  ,10
11,  ,  ,  ,15
16,  ,  ,  ,20
21,22,23,24,25

如果数组大于此值并且未找到该值,则它将达到更高的级别

感谢您的帮助

<<<<编辑>>>> FOR 25

  ,  ,  ,  ,  
  , ,  ,  ,  
  ,  ,  ,  ,  
  ,  ,  ,19,20  
  ,  ,  ,24,  

  ,  ,  ,  ,  
  ,  ,  ,  ,  
  ,  ,13,14,15
  ,  ,18,  ,  
  ,  ,23,  ,  

  ,  ,  ,  ,  
  ,07,08,09,10
  ,12,  ,  ,  
  ,17,  ,  ,  
  ,22,  ,  ,  

01,02,03,04,05
06,  ,  ,  ,  
11,  ,  ,  ,  
16,  ,  ,  ,  
21,  ,  ,  ,  

2 个答案:

答案 0 :(得分:2)

假设这是家庭作业......

您会注意到在5X5阵列中,您必须添加/减去5以垂直移动,并添加/减去1以水平移动。

无论你在阵列中的起始位置如何,这都有效。

现在你只需要知道如何知道自己什么时候处于优势地位。


你需要四个for循环来绕过每个方块,嵌套在一个外环中。外环将适用于每个方块。您应该能够使用外循环生成的数字来帮助您在内循环中进行计算。

答案 1 :(得分:0)

在你的场景中,你可以稍微改变你的实现,并从一些不同的东西开始。

int[] lvl1 = [1, 2, 3, 4, 5, 10, 15, 20, 25, 24, 23, 22, 21, 16, 11, 06]<br/>
int[] lvl2 = [7, 8, 9, 14, 19, 18, 17, 12, 7]<br/>
int[] lvl3 = [13]