资源简介
n阶幻方的求法(java代码版)。由于现在网上还没有系统的求n阶幻方的java代码,所以写出来供大家参考!
代码片段和文件信息
package test03;
import java.util.Arrays;
import java.util.Scanner;
public class MagicSquare {
public static void main(String[] args) {
System.out.println(“请确定是几阶幻方“);
Scanner scan = new Scanner(System.in);
int a=scan.nextInt();
int[][] array=null;
if(a%2!=0){
array = getSingleArray(a1);
}else{
array=getDoubleArray(a);
}
for(int[] arr:array){
System.out.println(Arrays.toString(arr));
}
scan.close();
}
/**
* 奇数阶幻方将最小的数放在第一行最中间,然后将下一个放在这个数的右上方;如果下一个的地方有数了则放在该数的下方
* @param index:index表示幻方的阶数(奇数)
* @param num:num表示幻方中最小的数
* @return:返回满足幻方的数组
*/
public static int[][] getSingleArray(int indexint num){
//定义数组将最小的数放在数组第一行正中间
int[][] arr=new int[index][index];
arr[0][index/2]=num;
int x=0;int y=index/2;
//将最小数以后的数放入数组中
for(int i=num+1;i<=index*index+num-1;i++){
//xy为上个数的坐标把它们改为当前数的坐标
if(x-1<0){//x-1<0说明x坐标越界x变成x坐标的最大值;否则x-1就是当前数的横坐标
x=arr.length-1;
}else{
x=x-1;
}
if(y+1>arr.length-1){//y+1大于y的最大值说明y坐标越界y变为0;否则y+1就是当前数的纵坐标
y=0;
}else{
y=y+1;
}
while(true){
//判断得到的坐标是否有数
if(arr[x][y]==0){
//得到的坐标没数则直接将当前数赋给数组
arr[x][y]=i;
break;
}else{
//得到的坐标有数则获取上一个数的坐标x坐标+1作为现在的纵坐标继续循环直到xy对应的值是0赋值退出
int[] js = getIndex(arr i-1);
x=js[0]+1;
y=js[1];
if(x>arr.length-1){
x=0;
}
}
}
}
return arr;
}
/**
*
* @param arr:目标数组
* @param num:目标数(在arr数组中唯一)
* @return:返回arr数组中num这个数的坐标(存放在数组中)
*/
public static int[] getIndex(int[][] arrint num){
int[] s=new int[2];
for(int i=0;i for(int j=0;j if(arr[i][j]==num){
s[0]=i;
s[1]=j;
}
}
}
return s;
}
/**
* 偶数阶幻方
* ps:不包含2阶幻方
* @param len:幻方阶数因为不包含2
相关资源
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
评论
共有 条评论