这样的程序怎么写?(很急) 可以用数组。如上例16应存放在value[1][0]中。寻找规律,用规律来安排每一个数应存放在那儿,然后输出数组。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为16是第二行,第一列呀,所以当然存放在value[1][0] int[] array=new [n+2][n+2];for (int i=0;i<n+2;i++){//填出一圈边框,为以后判定提供便利 for (int j=0;j<n+2;j++){ array[i][j]=-1; }}for (int i=1;i<n+1;i++){ for (int j=1;j<n+1;j++){ array[i][j]=0; }}int x=0;int y=0;int x1=x;int y1=y;int[] dxa={1,0,-1,0};int[] dya={0,1,0,-1};//表示方向int d=0;for (int i=1;i<=n*n;i++){ array[x][y]=i; x+=dxa[d];y+=dya[d]; if(array[x1][y1]!=0){ x-=dxa[d];y-=dya[d]; d=(d+1)%4; x+=dxa[d];y+=dya[d]; }} 我随手写的,没有调试,估计没有问题。还要不要更详细的注释?主要思想是,先填一个数i,然后往前跑,如果碰到边界就回去,换个方向跑。由于本题的特点,只要换下个方向就肯定是空的。当然,有那种无路可走的情况,但是那个时候已经到顶了,i==n*n static 方法的问题 急求swing的一段代码,跪求高手帮忙~!! 类的问题 Serializable 问题 为什么象网络蚂蚁这样的多线程程序可以加快下载速度? NetBeans下添加 JavaDoc 散50分,请教:如何将(4*(100+0.8)-1)表达式储存为数组? 谁有针对算术表达式分析的java程序呀? 用java的socket作client端,用vc的socket做server端,应该注意些什么? 有关JMS的问题! 请问在Java Script中,回车符的表示是用什么来代替的! 关于java中时间的问题。
for (int i=0;i<n+2;i++){//填出一圈边框,为以后判定提供便利
for (int j=0;j<n+2;j++){
array[i][j]=-1;
}
}
for (int i=1;i<n+1;i++){
for (int j=1;j<n+1;j++){
array[i][j]=0;
}
}
int x=0;int y=0;
int x1=x;int y1=y;
int[] dxa={1,0,-1,0};int[] dya={0,1,0,-1};//表示方向
int d=0;
for (int i=1;i<=n*n;i++){
array[x][y]=i;
x+=dxa[d];y+=dya[d];
if(array[x1][y1]!=0){
x-=dxa[d];y-=dya[d];
d=(d+1)%4;
x+=dxa[d];y+=dya[d];
}
}