当前位置: 代码迷 >> J2SE >> 请问一个算法,怎样给二维数组外面套一圈0
  详细解决方案

请问一个算法,怎样给二维数组外面套一圈0

热度:280   发布时间:2016-04-24 13:30:46.0
请教一个算法,怎样给二维数组外面套一圈0
请教算法,有一二维数组 如下
1 2 3
4 5 6
7 8 9
输出
0 0 0 0 0
0 1 2 3 0
0 4 5 6 0
0 7 8 9 0
0 0 0 0 0
请教一下算法应该怎么写.谢谢大家

------解决方案--------------------
Java code
//刚写的,但只能转化等列的数组,调试通过比较符合你的要求public class Zero{    /**     * 将一个等列数的二维数组转换成周围有一圈零的二维数组     * @param a 待转换数组     * @return 转换后的数组     */    public int [][] toZero(int [][] a){        int [][] newArray =new int[a.length+2][a[0].length+2];        for(int first=0;first<a[0].length+2;first++){            newArray[0][first]=0;        }                for(int i=0;i<a.length;i++){            newArray[i+1][0]=0;            for(int j=0;j<a[i].length;j++){                newArray[i+1][j+1]=a[i][j];                        }            newArray[i+1][a[i].length+1]=0;        }        return newArray;        }    /**     * 打印数组     * @param a 待打印的数组     */    public void print(int[][] a){        for(int i=0;i<a.length;i++){            for(int j=0;j<a[i].length;j++){                System.out.print(a[i][j]);            }System.out.println();        }    }    public static void main(String [] args){        Zero z = new Zero();        //待转换的数组        int [][] array ={                {1,2,3},                {4,5,6},                {7,8,9},            };        z.print(z.toZero(array));//转换后打印        }}//打印结果://00000//01230//04560//07890//00000
------解决方案--------------------
那个,我最先贴的那个有些问题,调试了一下,重新贴一次。


Java code
public class Test {    public static void main(String[] args) {        final int ROW = 3;        final int COL = 3;        int m = 0;        int k = 0;        for (int i = 0; i <= ROW + 1; i++) {            for (int j = 0; j <= COL + 1; j++) {                if ((i == 0) || (j == 0) || (i == ROW + 1) || (j == COL + 1)) {                    m = 0;                } else {                    k++;                    m = k;                }                System.out.print(m + ((j == COL + 1) ? "\n" : " "));            }        }    }}
  相关解决方案