200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java数组螺旋矩阵从上到下_Java-基础编程(螺旋矩阵乘法表)

java数组螺旋矩阵从上到下_Java-基础编程(螺旋矩阵乘法表)

时间:2022-08-30 22:58:14

相关推荐

java数组螺旋矩阵从上到下_Java-基础编程(螺旋矩阵乘法表)

package cn.rick.study;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.Scanner;

/**

*

* @author Rick-bao date -8-29

*

*/

public class SomeBasicCode {

public static void main(String[] args) {

MultiplicationTable();// 乘法表

createRingMatrix();// 螺旋矩阵

System.out.print("\n\n\t\t\t\t本显示由Rick制作,请保留权利 !");

}

/*

* 螺旋矩阵:一个比九九乘法表复杂的算法 author Rick date -8-29 14:31:06

*/

protected static void createRingMatrix() {

while (true) {

String input = "";

System.out.println("请输入矩阵的行列数(正方形):");

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;// 接收转换的变量

try {

n = Integer.parseInt(input);

} catch (Exception e) {

System.out.println("您输入的不是数字(1、2、3等)!");

continue;

}

System.out.println("这是一个行列数为 " + n + " 的螺旋矩阵数组 \n");

int intA = 1;

int[][] array = new int[n][n];// 说明二维数组

int intB;

// ----- 算法开始 Begin

if (n % 2 != 0)

intB = n / 2 + 1;// 奇数i循环次数

else

intB = n / 2;// 偶数时i循环次数

for (int i = 0; i < intB; i++) {// 外层循环控制行列

// 从左到右 横向

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++;

}

}

// ------ 输出二维数组内容

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

System.out.print(" " + array[i][j] + " ");

}

System.out.println();

}

// ----- 算法结束 End

}

}

/*

* 乘法表 author Rick date 8月29日15:33:36

*/

private static void MultiplicationTable() {

Scanner scanner = new Scanner(System.in);// 获取输入内容

int input = 0;// 接收输入的变量

System.out.println("提示:以下为您打印乘法表,格式与一样 !");

System.out.print(" 请输入行数(完成后按 Enter): ");

while (scanner.hasNext()) {

try {

input = scanner.nextInt();

scanner.close();

} catch (Exception e) {

System.out.println("请输入数字(如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;

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。