二维数组顺时针输出

来源:互联网 发布:安卓手机优化软件 编辑:程序博客网 时间:2024/05/22 02:25

很简单的一个算法,结果弄了半天,最后发现是行和列弄错了,心塞塞
这种题还是找出数学规律重要

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package javaapplication1;/** * * @author YJZ */public class PrintMatrixClockwisely {    public static void PrintMatrix(int a[][],int columns,int rows){        if(a==null||columns<=0||rows<=0){            System.out.print("输入错误");        }        int start =0;        while(columns>start*2&&rows>start*2){            PrintMatrixInCircle(a,columns,rows,start);            start++;        }    }    public static void PrintMatrixInCircle(int a[][],int columns,int rows,int start){        int endX=rows-1-start;        int endY=columns-1-start;        //从左到右        for(int i=start;i<=endX;i++){             int number=a[start][i];            PrintNumber(number);        }        //从上到下        if(start<endY){            for(int i=start+1;i<=endY;i++){                int number=a[i][endX];                PrintNumber(number);            }        }        //从右到左        if(start<endX&&start<endY){            for(int i=endX-1;i>=start;--i){                int number=a[endY][i];                PrintNumber(number);            }        }        //从下到上        if(start<endX&&start<endY-1){            for(int i=endY-1;i>=start;--i){                int number=a[i][start];                PrintNumber(number);            }        }    }    public static void PrintNumber(int number) {        System.out.print(number+" ");    }    public static void Text(int columns,int rows){        int[][] aa=new int[columns][rows];        int b=1;        for(int i=0;i<columns;i++){            for(int j=0;j<rows;j++){                aa[i][j]=b;                b++;             }        }        PrintMatrix(aa,columns,rows);        System.out.println(" ");    }    /**     * @param args the command line arguments     */    public static void main(String[] args) {        // TODO code application logic here        Text(4,1);        Text(1,4);        Text(4,4);        Text(1,1);    }}
0 0
原创粉丝点击