我被指派提示用户给出一个幻方的顺序(一个3阶的幻方将是一个3x3矩阵),然后生成一个该顺序的幻方,而不使用二维数组。
以下是我所知道和理解的:
以下是我得到但不明白如何正确实现的内容:
>
重复以下步骤,直到i=订单^2+1:
(a)魔力[指数]=i
i. row = (row + order − 2) % order
ii. col = (col + order − 1) % order
package magicsquarecreator;
import java.io.IOException;
import java.util.Scanner;
public class MagicSquareDemo
{
public static void main(String[] args)
{
Scanner keyIn = new Scanner(System.in);
String option;
do
{
System.out.println();
System.out.println(" MAGIC SQUARE APPLICATION ");
System.out.println("==================================================");
System.out.println("Generate a Magic Square........................[1]");
System.out.println("Test for a Magic Square........................[2]");
System.out.println("Quit the Program...............................[0]");
System.out.println();
System.out.print("Select an option -> ");
option = keyIn.next();
System.out.println();
switch(option)
{
case "1":
try
{
System.out.println("Enter the dimension of the magic square -> ");
int order = keyIn.nextInt();
if (order < 1)
{
System.out.println("The order must be positive and odd");
}
else if (order % 2 == 0)
{
System.out.println("The program can only generate a magic square"
+ "\nwhose dimension is positive odd number.");
}
else if (order % 2 != 0)
{
int i=1, j=1;
int row = order - 1;
int col = order/2;
int[] magic = new int[order*order];
for (i=1; i<=order; i++)
{
magic[i] = i;
row = (row + 1) % order;
col = (col + 1) % order;
if (magic[i] != 0)
{
row = (row + order − 2) % order;
col = (col + order − 1) % order;
}
}
}
}
catch(IOException e)
{
System.out.println(e);
}
break;
case "2":
try
{
}
catch(IOException e)
{
System.out.println(e);
}
break;
case "0":
break;
default: System.out.println("Invalid choice...please select a valid menu option.");
}
}
while (option.compareTo("0") != 0);
}
}
老实说,我也没有真正理解taks,因为它是从你那里写的。如果我按照我的理解去做,它是不起作用的。但我看了看它应该如何工作,最后我得到了它。以下是else if(order%2!=0)
条件作为方法的部分(我测试了它,它现在正在工作):
public static void magicSqare(int order){
System.out.println(order);
int row = order - 1;
int col = order /2;
int [] magic = new int [order*order];
int index;
index = (row)*order + col;
magic[index]= 1;
for (int i = 2; i <= order*order; i++) {
if (magic[((row +1) % order)*order + ((col +1) % order)] == 0) {
row = (row +1) % order;
col = (col +1) % order;
}
else {
row = (row + order -1) % order;
//col = (col + order -1) % order;
}
index = (row)*order + col;
magic[index]= i;
}
//System.out.println(Arrays.toString(magic));
}
本文向大家介绍NumPy 如何生成多维数组的方法,包括了NumPy 如何生成多维数组的方法的使用技巧和注意事项,需要的朋友参考一下 Python现在是最热门的人工智能语言,各种工具的支持如Google的Tensorflow,都是首选支持Python的。 但是,与R语言不同,Python语言设计时,并没有考虑对于矩阵运算,统计计算等功能做专项支持。于是我们需要NumPy库来补足这一能力上的不足。 N
问题内容: 我想知道如何将2维数组转换为1维数组。我想出了一些代码,但是它似乎并不起作用。有人可以帮帮我吗?谢谢。 [edit]非常感谢。是否可以将String [] []中的每一行转换为String []中的索引,例如,如果我们转换String [] [](以上代码),那么当我打印出array [0]时,它应该打印哑巴,哑巴,哑巴[编辑] 问题答案: 或一次添加整行: 编辑: 从对我的答案的评论
我有生成SHA-1哈希的代码: 有没有办法将< code>hash转换成Guid(我猜是type 5,以便与SHA-1保持一致)?
本文向大家介绍使用js生成1-10000的数组相关面试题,主要包含被问及使用js生成1-10000的数组时的应答技巧和注意事项,需要的朋友参考一下 循环处理 使用 把一个 iterator 数据转换成真正的数组
本文向大家介绍用.NET如何生成二维码,包括了用.NET如何生成二维码的使用技巧和注意事项,需要的朋友参考一下 下面介绍一下如何用.NET生成二维码(QR Code码制),下面给出详细步骤: 1、新建一个window应用程序,然后引入.NET二维码类库(开源的类库,可从网上下载): 2、构建UI界面,代码如下: 图形如下所示: 3、编写 编码和解码按钮事件,进行编码和解码处理: 4、编译运行,
我们知道,3以上的所有素数都可以通过以下方法生成: 然而,由上述公式生成的所有数字都不是素数。 为了消除这种情况,我使用了筛法,并删除了数字,这些数字是由上述公式生成的数字的因子。 利用事实: 如果一个数没有质因数,它就被称为质因数。 因为我们可以使用上述公式生成所有素数 如果我们能去掉以上数字的所有倍数,我们只剩下质数 生成低于1000的素数。 然而,这种方法确实正确生成质数。这运行得更快,因为