您的位置:首页 > 编程语言 > C#

c#简单实现一个螺旋数组

2007-11-04 16:31 447 查看
几个月前上csdn论坛,看到有人问如何实现如下的螺旋数组:

1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

第一感觉解决方法可以是按照螺旋的顺序,递增生成。于是自己就用C#尝试一下,通过,于是回帖解决问题。
网上似乎也有类似的代码,不过似乎是VC之类的。终于打算有空也写写csdn的博客,就将这贴上来,作为第一帖。


public class Luoxuan




...{


private int x;


private int y;


public int[,] group;




public Luoxuan(int x,int y)




...{


this.x = x;


this.y = y;




this.group = new int[x,y];


}




public void Generate()




...{


int value = 1;


int intTime = 0;


int i = 0;


int j = i;




while(this.group[i, i] == 0)




...{


//left to right


for (i = intTime; j < y - intTime; j++)




...{


this.group[i, j] = value ++ ;


}


j--;


i++;




//up to down


for (; i < x - intTime; i++)




...{


this.group[i, j] = value++;


}


i--;


j--;




//right to left


for (; j >= intTime; j--)




...{


this.group[i, j] = value++;


}


j++;


i--;




//down to up


for (; i > intTime; i--)




...{


this.group[i, j] = value++;


}


i++;


j++;




intTime++;


}


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: