Java九宫格编程_java编程-九宫格问题

本文介绍了如何使用Java编程解决九宫格问题。通过输入一个正奇数n,程序会生成一个n行n列的矩阵,确保每行、每列及对角线上的数字和相等。讲解了算法思路,并提供了完整的Java代码实现。
摘要由CSDN通过智能技术生成

要求:根据输入的数字n,如:3,5,7...以矩阵显示n行n列数,这些数由1~n*n构成,要求矩阵的每行每列及对角线上n个数之和相等

预备知识:

在距阵中,1在第一行正中,随后的数字应放到上一个数字的右上方方格中,如果向上不行,就放到该列的最下方格子;如果向右不行,就放到该行的最左边;如果都不行,就放到上一个数字的正下方;如果目标格子中已经有数字,也放到上一个数字的正下方

思路:

1) 使用2维数组预备存储1~n*n这些数字

2)

1是放到第一行正中的,所以其索引号是:[0][(n-1)/2]

3) 随后的数字,其索引号原则如下

1> num的行索引为 num-1 的

(行索引-1) , num的列索引为 num-1 的 (列索引+1)

2>如果发现num的行,列索引都越位(-1或n),则

num的行索引为

num-1 的 (行索引+1) , num的列索引为 num-1 的

(列索引)

3>如果发现num的行,列索引指向的位置已经有数字,则

num的行索引为 num-1 的 (行索引+1) , num的列索引为

num-1 的

(列索引)

4>如果发现num的行越位(-1),则

num的行索引为n-1

5>如果发现num的列越位(n),则

num的列索引为0

如下是改程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值