复习java之二维数组打印的递归实现

结果:随意输入n打印如下所示的图形(n=3)

3333333
3222223
3211123
3210123
3211123
3222223
3333333

源代码:

public class testFinal {

public static int[][] print(int n, int m,int array[][])
{
for(int i=m-n;i<n+m+1;i++)
{
for(int j=m-n;j<n+m+1;j++)
{
if(i==m-n||i==n+m||j==m-n||j==n+m)
array[i][j]=n;
}
}

if(n>0)
{
n--;
print(n,m, array);
}

return array;
}

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n=scanner.nextInt();
int m =n;
int array[][] = new int[2*n+1][2*n+1];
array = print(n, m,array);
for(int i=0;i<2*n+1;i++)
{
for(int j=0;j<2*n+1;j++)
{
System.out.print(array[i][j]);
}
System.out.println();
}
}
}

posted @ 2018-03-17 14:49  爱编程的文科生  阅读(551)  评论(0编辑  收藏  举报