java数组螺旋矩阵从上到下_Java-基础编程(螺旋矩阵乘法表)
package cn.rick.study;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
/**
*
* @author Rick-bao date 2014-8-29
*
*/
public class SomeBasicCode {
public static void main(String[] args) {
MultiplicationTable();// 乘法表
createRingMatrix();// 螺旋矩陣
System.out.print("\n\n\t\t\t\t本顯示由Rick制作,請(qǐng)保留權(quán)利 !");
}
/*
* 螺旋矩陣:一個(gè)比九九乘法表復(fù)雜的算法 author Rick date 2014-8-29 14:31:06
*/
protected static void createRingMatrix() {
while (true) {
String input = "";
System.out.println("請(qǐng)輸入矩陣的行列數(shù)(正方形):");
InputStreamReader inputStreamReader = new InputStreamReader(
System.in);// 獲得輸入流
BufferedReader buff = new BufferedReader(inputStreamReader);
try {
input = buff.readLine();// 讀取輸入流
} catch (Exception e) {
System.out.println(e.toString());
}
int n;// 接收轉(zhuǎn)換的變量
try {
n = Integer.parseInt(input);
} catch (Exception e) {
System.out.println("您輸入的不是數(shù)字(1、2、3等)!");
continue;
}
System.out.println("這是一個(gè)行列數(shù)為 " + n + " 的螺旋矩陣數(shù)組 \n");
int intA = 1;
int[][] array = new int[n][n];// 說(shuō)明二維數(shù)組
int intB;
// ----- 算法開(kāi)始 Begin
if (n % 2 != 0)
intB = n / 2 + 1;// 奇數(shù)i循環(huán)次數(shù)
else
intB = n / 2;// 偶數(shù)時(shí)i循環(huán)次數(shù)
for (int i = 0; i < intB; i++) {// 外層循環(huán)控制行列
// 從左到右 橫向
for (int j = i; j < n - i; j++) {
array[i][j] = intA;
intA++;
}
// 從上到下 縱向
for (int k = i + 1; k < n - i; k++) {
array[k][n - i - 1] = intA;
intA++;
}
// 從右到左 橫向
for (int I = n - i - 2; I >= i; I--) {
array[n - i - 1][I] = intA;
intA++;
}
// 從下到上 縱向
for (int m = n - i - 2; m > i; m--) {
array[m][i] = intA;
intA++;
}
}
// ------ 輸出二維數(shù)組內(nèi)容
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(" " + array[i][j] + " ");
}
System.out.println();
}
// ----- 算法結(jié)束 End
}
}
/*
* 乘法表 author Rick date 2014年8月29日15:33:36
*/
private static void MultiplicationTable() {
Scanner scanner = new Scanner(System.in);// 獲取輸入內(nèi)容
int input = 0;// 接收輸入的變量
System.out.println("提示:以下為您打印乘法表,格式與一樣 !");
System.out.print(" 請(qǐng)輸入行數(shù)(完成后按 Enter): ");
while (scanner.hasNext()) {
try {
input = scanner.nextInt();
scanner.close();
} catch (Exception e) {
System.out.println("請(qǐng)輸入數(shù)字(如1、2、3、5等)!");
break;
}
for (int i = 1; i <= input; i++) {
System.out.print("\n");
for (int j = 1; j <= i; j++) {
System.out.print(" " + j + "*" + i + " = " + i * j + " ");
}
}
break;
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java数组螺旋矩阵从上到下_Java-基础编程(螺旋矩阵乘法表)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三星 OneUI 5.1 提升 DeX
- 下一篇: java输出栈的弹出序列_剑指offer