zoukankan      html  css  js  c++  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(" 本显示由Rick制作,请保留权利 !");
    }

    /*
    * 螺旋矩阵:一个比九九乘法表复杂的算法 author Rick date 2014-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 + " 的螺旋矩阵数组 ");
    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 2014年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(" ");
    for (int j = 1; j <= i; j++) {
    System.out.print(" " + j + "*" + i + " = " + i * j + " ");
    }
    }
    break;
    }
    }

    }

  • 相关阅读:
    解决Oracle SQL Developer无法连接远程服务器的问题
    [备忘] Automatically reset Windows Update components
    在ASP.NET MVC的Action中直接接受客户端发送过来的HTML内容片段
    Rehosting the Workflow Designer
    解决Onedrive经常无法访问的问题
    最好的简明NodeJS学习材料
    最好的Python简明教程
    在Linux(ubuntu server)上面安装NodeJS的正确姿势
    在Windows中安装NodeJS的正确姿势
    在Windows环境中开始Docker的学习和体验
  • 原文地址:https://www.cnblogs.com/rick168/p/3945746.html
Copyright © 2011-2022 走看看