JAVA九宫格程序 您所在的位置:网站首页 九宫格数值相等 JAVA九宫格程序

JAVA九宫格程序

2023-11-02 20:22| 来源: 网络整理| 查看: 265

实现功能首先可以观察数字排列规律。

1 2 3 4 5 6 7 8 9,数字以5为中心,首尾相加相等,故在九宫格中排列时只需将首尾数字依次对应排列,且将5放于中间格,观察九宫格。

                                                             

斜看情况下,数字排列按照顺序排列即可,在示例图中,下一位数字(n+1)的 行 是上一位数字(n)的(行 - 1),列 是 (列 + 1)。 遇到 行列 超出数组范围,按照不同情况进行处理,处理过程参考下文代码中的注释。

 

import java.util.Scanner; public class SumNine { public static void main(String[] args){ int n ; boolean mark = true; Scanner sc = new Scanner(System.in); System.out.println("请输入N,N为奇数"); n = sc.nextInt(); while (mark){ if (n % 2 == 0 || n < 0){ System.out.println("输入的数字小于0或不为奇数,请重新输入"); n = sc.nextInt(); } else{ mark = false; } } int[][] arr = new int[n][n]; // 完成建立N*N的数组,开始填数。1、行超限;2、列超限;3、行列超限;4、下一空缺有数 // 进行判断需要有先后,只有 行列均不超限 的情况下才能判断数组某个位置是否为空值。 行列均超限时,会同时满足超限的单一条件,故必须放在第一个判断。 // 否则将无法触发判断条件。 int a = 0, b = n / 2; for (int i = 1; i = n){ a += 2; b--; } // 若行超限,则移动至最后一行 else if (a < 0){ a = n - 1; } // 若列超限,则移动至第一列 else if (b >= n){ b = 0; } // 或下一目标位置不为空(数组未定义值时,默认为0) else if (arr[a][b] != 0){ a += 2; b--; } } // 遍历数组,并输出 for (int[] c : arr){ for (int d : c){ System.out.print(d + "\t"); } System.out.println(); } sc.close(); } }

本人JAVA自学新手,本文目的在于加强自我学习,文中有不对之处,请多多指教。

排列方法不限此种,图文仅给出了其中一种解题思路。

代码参考了其他题主,非原创,侵删。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有