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++;
}
}
}
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++;
}
}
}
相关文章推荐
- C#中定义数组和一个简单排序算法实现。
- C#使用泛型数组简单实现一个列表List
- 登录存储过程在C#中实现,非常简单的一个方法
- 用C#实现简单的控件数组
- 一个简单的递归实现数组组元素的组合
- 用 C# 实现一个简单的 Rest Service 供外部调用
- C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
- C#实现一个最简单的HTTP服务器
- 一个简单的实现找出数组中一个数字出现次数最多的数字的算法
- 用 C# 实现一个简单的 Rest Service 供外部调用
- 一个用C#实现的简单http server
- C# 一步一步完成一个简单的计算器 第三步---实现双目运算
- C#实现一个最简单的HTTP服务器
- 一个简单的自动化测试架构的实现(C#)
- C#实现一个最简单的HTTP服务器
- c#实现的一个简单的FTP客户端
- C#实现一个简单的REST service
- Oracle_C# 实现 Oracle Text(全文检索)的一个简单例子
- C#真他妈神奇,一个函数都不用写就能实现一个简单的邮件发送工具
- C# 实现简单打印(三)-认识打印控件,创建一个带打印功能的程序