1 Star 0 Fork 0

syysui/Java

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
MagicSquare.java 1.50 KB
一键复制 编辑 原始数据 按行查看 历史
Aitor Fidalgo Sánchez 提交于 2021-10-16 21:43 +08:00 . Fix package declarations (#2576)
package Maths;
import java.util.*;
/*A magic square of order n is an arrangement of distinct n^2 integers,in a square, such that the n numbers in all
rows, all columns, and both diagonals sum to the same constant. A magic square contains the integers from 1 to n^2.*/
public class MagicSquare {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Input a number: ");
int num = sc.nextInt();
if ((num % 2 == 0) || (num <=0 ))
{
System.out.print("Input number must be odd and >0");
System.exit(0);
}
int[][] magic_square = new int[num][num];
int row_num = num/2;
int col_num = num-1;
magic_square[row_num][col_num] = 1;
for (int i = 2; i <= num*num; i++) {
if (magic_square[(row_num - 1+num) % num][(col_num + 1) % num] == 0) {
row_num = (row_num - 1+num) % num;
col_num = (col_num + 1) % num;
}
else {
col_num = (col_num - 1 +num) % num;
}
magic_square[row_num][col_num] = i;
}
// print the square
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
if (magic_square[i][j] < 10) System.out.print(" ");
if (magic_square[i][j] < 100) System.out.print(" ");
System.out.print(magic_square[i][j] + " ");
}
System.out.println();
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/syysui/Java.git
git@gitee.com:syysui/Java.git
syysui
Java
Java
master

搜索帮助