算法不是太好不过,提供一个方式
有兴趣的可以试一下
int d = int.Parse( this.TextBox1.Text );
if( d>1 )
{
int[,] ia = new int[d,d]; int ix = 0,iy = 0,il=0;
int layer = d/2;
if( d%2 != 0 )
layer++;
for( int count=1;il<layer;il++ )
{
for( ;iy<d-il;iy++,count++ )
ia[ix,iy] = count;
for( iy--,ix++;ix<d-il;ix++,count++ )
ia[ix,iy] = count;
for( ix--,iy--;iy>=il;iy--,count++ )
ia[ix,iy] = count; for( ix--,iy++;ix>il;ix--,count++ )
ia[ix,iy] = count; ix++;
iy++;
} for( int i=0;i<d;i++ )
{
for( int j=0;j<d;j++ )
Response.Write( ia[i,j].ToString()+" " );
Response.Write( "<br>" );
}
}
有兴趣的可以试一下
int d = int.Parse( this.TextBox1.Text );
if( d>1 )
{
int[,] ia = new int[d,d]; int ix = 0,iy = 0,il=0;
int layer = d/2;
if( d%2 != 0 )
layer++;
for( int count=1;il<layer;il++ )
{
for( ;iy<d-il;iy++,count++ )
ia[ix,iy] = count;
for( iy--,ix++;ix<d-il;ix++,count++ )
ia[ix,iy] = count;
for( ix--,iy--;iy>=il;iy--,count++ )
ia[ix,iy] = count; for( ix--,iy++;ix>il;ix--,count++ )
ia[ix,iy] = count; ix++;
iy++;
} for( int i=0;i<d;i++ )
{
for( int j=0;j<d;j++ )
Response.Write( ia[i,j].ToString()+" " );
Response.Write( "<br>" );
}
}
解决方案 »
- 考试中,速求
- c# winfrom 关于画图的
- 多线程控制
- 关于继承的设计,请指点。
- 急:为何我通过程序打开某个exe,进行里面有,但是这个exe不显示?
- C#导出到Excel的严重问题,请高手赐教
- 我想用C#写个局域网聊天的程序,来这里求些学习资料。
- 大家帮忙看看验证码的问题,我这这样不对吗
- C#引用VB编写的COM (.DLL)文件,提示需要Cannot convert source type 'string' to target type 'System.IntPtr'
- 求助:如何实现类似于treeview的东东~~~~见内!谢谢!
- 关于DataSet和数据源的一个问题
- 解决方案和项目在VS.net里,概念上有什么区别?
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
private Standard.FlatButton flatButton1;
private System.ComponentModel.Container components = null;
public static int n;
public static int num=10;
public static int [,] arr =new int[num,num];
[STAThread]
static void Main()
{
Application.Run(new Form1());
} private void flatButton1_Click(object sender, System.EventArgs e)
{
int i,j;
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
{
textBox1.Text+=arr[i,j].ToString()+",";
}
textBox1.Text+="\r\n";
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
int i,j,a,b,c,d;
n=0;
a=0;
b=num;
c=0;
d=num;
for(i=a;i<b;i++)
{
for(j=c;j<d;j++)
{
n+=1;
arr[i,j]=n;
if (j==d - 1)
{
ji1(j,i+1,d);
a=i+1;
b=d-1;
c=i+1;
d=d-1;
}
}
}
}
private void ji1(int arri,int bgn,int end)
{
int arrj;
for(arrj=bgn;arrj<end;arrj++)
{
n+=1;
arr[arrj,arri]=n;
if (arrj==end - 1)
{
ij2(arrj,end - 2,bgn - 2);
}
}
}
private void ij2(int arri,int bgn,int end)
{
int arrj;
for(arrj=bgn;arrj>end;arrj--)
{
n+=1;
arr[arri,arrj]=n;
}
ji2(end+1,bgn,end+1);
}
private void ji2(int arri,int bgn,int end)
{
int arrj;
for(arrj=bgn;arrj>end;arrj--)
{
n+=1;
arr[arrj,arri]=n;
}
}
}