Java输出逆时针螺旋数字
2016-09-13 22:27
253 查看
用java逆时针输出螺旋数字
又是上学期学c++时的遗留问题,今天想了一下竟然写了出来。这是代表我的能力有所提升吗?但明显写出的代码还是略不堪入目。Methods
主要思路就是用两个for循环及边界判定来实现逆时针输出。1. 首先创建n行n列的二维数组,并用两个for循环初始化为0
2. 设定变量count往数组里填数
3. 四个方向的行进,内含边界判定
难点
说是难点其实是难到我的地方,或者说是之前难想到的地方。比如说是在右行的一段代码中,需要处理之前下行的下标变换:
for(r–, c++; c < n; c++)
这里的r–, c++是在调试中一步一步改的…
Code
还是贴一下完整的代码吧import java.util.Scanner; public class Lab2_4 { public static void main(String[] args) { int n=0; System.out.println("请输入n:"); try { Scanner inputn = new Scanner(System.in); n = inputn.nextInt(); } catch (Exception e) { // TODO: handle exception } // initialize int arr[][] = new int ; for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { arr[i][j] = 0; } } arr[0][0] = 1; int r=0 , c=-1, count=2; ToShow: for( ; count <= n*n; ){ // 下行 for(r++, c++; r<n; r++) { if(arr[r][c] != 0){ break; } arr[r][c] = count; count++; if(count >= n*n){ break ToShow; } } //右行 for(r--, c++; c<n; c++) { if(arr[r][c] != 0){ break; } arr[r][c] = count; count++; } //上行 for(c--, r--; r>=0; r--) { if(arr[r][c] != 0){ break; } arr[r][c] = count; count++; } //左行 for(c--, r++; c>=0; c--) { if(arr[r][c] != 0){ break; } arr[r][c] = count; count++; } } //show for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { System.out.print(arr[i][j]+"\t"); } System.out.println(" "); } } }
相关文章推荐
- java逆时针螺旋输出矩阵
- java中格式化输出数字
- java中格式化输出数字
- Java格式化输出数字
- Java格式化输出数字(备用)
- 逆时针输出数字,并截取。
- 螺旋数字矩阵的输出
- 逆时针输出回形矩阵图(Java版本)
- java从命令行输入一个数,输出其包含数值相邻相加的和等于输入的数字
- java中格式化输出数字
- Java 小例子:输出格式化数字
- java.text.DecimalFormat()格式化输出数字
- Java中格式化输出数字
- Java技巧:格式化输出数字
- 开始学java之格式化数字输出
- java中格式化输出数字
- Java 小例子:输出格式化数字
- java中格式化输出数字
- javacode--输出数字图形
- [Java] 格式化输出数字、日期