偶比较笨
看不懂这个算法
import java.io.*;public class Arrayprint
{
private int N; //矩阵的维数
private int[][] array;
Arrayprint()
{
N = 5;
array = new int[N][N];
} Arrayprint(int n)
{
N = n;
array = new int[N][N];
}
public void print()
{
int i = 0,j = 0,i0 = 0,j0 = 0,count = 1, Num = N-1;
while(Num>0)
{
for(i=i0,j=j0;j<Num;j++,count++)
{
array[i][j]=count;
}
for(i=i0;i<Num;i++,count++)-------------------------(1)
{
array[i][j]=count;
}
for(j=Num;j>j0;j--,count++)
{
array[i][j]=count;
}
for(i=Num;i>i0;i--,count++)------------------------(1)
{
array[i][j]=count;
}
i0++;
j0++;
Num--;
}
if(N%2!=0)
{
array[N/2][N/2]=count;----------------------------(2)
}
for( i=0;i<N;i++){
for( j=0;j<N;j++){
String ar = "0";
if(array[i][j]/10<1) ar=" "+array[i][j];
else if((array[i][j]/100<1)&&(array[i][j]/10>1)){
ar=""+array[i][j];
}
System.out.print(ar+" ");
}
System.out.println();
}
}
public static void main(String[] args) throws IOException
{
int order = 0;
System.out.println("Please input the order of the square:(<10)");
order = System.in.read();
order = order-'0';
Arrayprint arr = new Arrayprint(order);
arr.print();
}
}
两个(1)之间的循环是怎么回事呢?看不懂
(2)为什么是奇数的时候要用到这句?
请高手帮忙指点.谢谢
看不懂这个算法
import java.io.*;public class Arrayprint
{
private int N; //矩阵的维数
private int[][] array;
Arrayprint()
{
N = 5;
array = new int[N][N];
} Arrayprint(int n)
{
N = n;
array = new int[N][N];
}
public void print()
{
int i = 0,j = 0,i0 = 0,j0 = 0,count = 1, Num = N-1;
while(Num>0)
{
for(i=i0,j=j0;j<Num;j++,count++)
{
array[i][j]=count;
}
for(i=i0;i<Num;i++,count++)-------------------------(1)
{
array[i][j]=count;
}
for(j=Num;j>j0;j--,count++)
{
array[i][j]=count;
}
for(i=Num;i>i0;i--,count++)------------------------(1)
{
array[i][j]=count;
}
i0++;
j0++;
Num--;
}
if(N%2!=0)
{
array[N/2][N/2]=count;----------------------------(2)
}
for( i=0;i<N;i++){
for( j=0;j<N;j++){
String ar = "0";
if(array[i][j]/10<1) ar=" "+array[i][j];
else if((array[i][j]/100<1)&&(array[i][j]/10>1)){
ar=""+array[i][j];
}
System.out.print(ar+" ");
}
System.out.println();
}
}
public static void main(String[] args) throws IOException
{
int order = 0;
System.out.println("Please input the order of the square:(<10)");
order = System.in.read();
order = order-'0';
Arrayprint arr = new Arrayprint(order);
arr.print();
}
}
两个(1)之间的循环是怎么回事呢?看不懂
(2)为什么是奇数的时候要用到这句?
请高手帮忙指点.谢谢
解决方案 »
- 使用File对象的createNewFile方法创建文件文件名乱码
- 公司面试题,请大家看哈兹,应该怎么做,说个思路也行
- 关于JScrollPane自动滚动.
- package是什么用的.是怎么用的.
- 出现NullPointerException如何解决?
- 请帮我指点方向,谢谢
- 初學java,能不能教教我如何快速入門
- 简单的关于Vector复制的问题
- oracle中如何用PL/SQL打开一个指定的库,并在屏幕上列出库中的所有表?
- java多线程问题,请教大神,多谢
- 对于MVC模式,深度讨论其View层细化问题,使用组件开发模式,来简化用户需求!(大家得工作可以不用那么累了,都来看看!)
- readint()与readutf()问题,急
{
array[i][j]=count;
}
这个循环里面只管i 但是j是怎么走的呢??
j一直保持什么值呢?还是怎样?
我不是说了吗:
从00开始,先向下到04,再横着到44,再上去到40,最后回到00,然后开始中间的一层,到最后。
你找张纸画一下就OK了。