真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

魔方矩陣java代碼 魔方陣數(shù)據(jù)結(jié)構(gòu)

魔方矩陣的Java版的魔方矩陣算法

/***魔術(shù)矩陣,也被稱為魔方矩陣。目前魔術(shù)矩陣主要有三種結(jié)構(gòu):N為奇數(shù)、N為4的倍數(shù)、N為其它偶數(shù)(4n+2)。br/*其中目前很多數(shù)學(xué)家都還在研究“N為4的倍數(shù)”、“N為其它偶數(shù)(4n+2)”,可見(jiàn)它們對(duì)于初學(xué)者而言太難。br/*因此此處演示的代碼,僅僅考慮N為奇數(shù)的情況。br/*此代碼作為課件提供給學(xué)生參考,在學(xué)完數(shù)組、循環(huán)、判斷后練習(xí)。br/*@authorluo_wenqiang在126點(diǎn)com*@version1.0.0*/classMagicArray{publicstaticvoidmain(String[]args){/*1.把1放在第一行的最中間2.每個(gè)數(shù)字向右上角填充3.如果往右已經(jīng)是最大數(shù)了,就從最左邊重新繼續(xù)4.如果往上已經(jīng)是最大數(shù)了,就從最下邊重新繼續(xù)5.如果遇到行數(shù)的整數(shù)倍,則下一個(gè)數(shù)直接放到該數(shù)的下面*//*1.聲明一個(gè)n*n二維數(shù)組2.聲明一個(gè)int類(lèi)型的變量記錄每個(gè)元素遞增的值,每次自加即可3.需要一個(gè)嵌套循環(huán)來(lái)填充二維數(shù)組3.1.把橫向的索引認(rèn)為x,x=n/23.2.把縱向的所應(yīng)認(rèn)為y,y=03.3.在循環(huán)中,先把x、y坐標(biāo)上的值填充,然后計(jì)算下一個(gè)坐標(biāo)*/intn=3;int[][]array=newint[n][n];intcounter=1;//自加的計(jì)數(shù)器intx=n/2;inty=0;//二維數(shù)組,需要用兩層的嵌套循環(huán)來(lái)完成比較簡(jiǎn)單for(inti=0;in*n;i++){//根據(jù)坐標(biāo)填充值array[y][x]=counter;//計(jì)算下一個(gè)坐標(biāo)的位置if(counter%n==0){//如果counter是n的整數(shù)倍,下一個(gè)坐標(biāo)是在當(dāng)前數(shù)字的下面y++;}else{x++;y--;if(y0){//如果y超出范圍,把y設(shè)置成最大y=n-1;}if(x==n){//如果x超出范圍,把x設(shè)置成最小x=0;}}//使用完以后計(jì)數(shù)器需要自加counter++;}for(int[]row:array){for(inti:row){System.out.print(i);System.out.print(\t);}System.out.println();}}}

創(chuàng)新互聯(lián)公司是一家專業(yè)提供祁連企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站制作、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為祁連眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

關(guān)于Java基礎(chǔ)編程的一個(gè)問(wèn)題--回形魔方陣

//完成了,請(qǐng)樓主測(cè)試吧~~~ 這個(gè)就是模擬矩陣旋轉(zhuǎn)的問(wèn)題

public class TTT {

public static void main(String[] args){

//RC就是行列數(shù),試試5 6 7 10等數(shù)值,都能正確輸出,呵呵~~

int rc = 4;

int[][] dat = new int[rc][rc];

int count = 0;

//初始化數(shù)據(jù)

for(int i=0; irc; i++){

for(int j=0; jrc; j++){

dat[i][j]=-1;

}

}

while(notFinished(dat,rc)){

for(int i=0; irc; i++){

int jj = -1;//存放未被填充數(shù)據(jù)的行

for(int j=0; jrc; j++){

if(dat[j][i]==-1){

jj = j;break;

}

}

//找到了未填充的行在這里處理

if(jj-1){

while(irc dat[jj][i]==-1){

dat[jj][i++]=++count;

}

dat = rotate(dat,rc);

}

}

}

//這里是修正起始位置的

if(rc%2==1){

for(int i=0; i3; i++)

dat = rotate(dat,rc);

}

else{

dat = rotate(dat,rc);

}

//打印結(jié)果

for(int i=0; irc; i++){

for(int j=0; jrc; j++){

System.out.print(dat[i][j]+"\t");

}

System.out.println("\n");

}

}

//對(duì)臨時(shí)結(jié)果做逆時(shí)針90度旋轉(zhuǎn)

private static int[][] rotate(int[][] dat,int rc){

int[][] tmp = new int[rc][rc];

for(int i=0; irc; i++){

for(int j=0; jrc; j++){

int t = dat[i][j];

tmp[rc-j-1][i]=t;

}

}

return tmp;

}

private static boolean notFinished(int[][] dat,int rc) {

for(int i=0; irc; i++){

for(int j=0; jrc; j++)

if(dat[i][j]==-1)

return true;

}

return false;

}

}

編java程序求解n階魔方矩陣代碼

import java.util.Scanner;

public class Matrix {

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("請(qǐng)輸入n*n數(shù)組,n=");

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

int[][] a = new int[n][n];//定義n*n數(shù)組

int result = 0;

for(int i=0; in; i++){

for(int j=0; jn; j++){

System.out.println("請(qǐng)輸入第"+i+"行,第"+j+"列元素:");

a[i][j]=sc.nextInt();

}

result +=a[i][i];

}

System.out.println("對(duì)角線元素和為:"+result);

}

}

打印魔方陣

下面是兩種方法的代碼:

#include stdio.h

void main()

{

int a[16][16];

int i,j,k,p,m,n;

/*初始化*/

p=1;

while(p==1)

{

printf("請(qǐng)輸入n.(0n=15,n是奇數(shù))\n");

scanf("%d",n);

if((n!=0)(n=15)(n%2!=0))

{

printf("矩陣階數(shù)是:%d\n",n);

p=0;

}

for(i=1;i=n;i++)

for(j=1;j=n;j++)

a[i][j]=0;

}

/*建立魔方陣*/

j=n/2+1;

a[1][j]=1;

for(k=2;k=n*n;k++)

{

i=i-1;

j=j+1;

if((i1)(jn))

{

i=i+2;

j=j-1;

}

else

{

if(i1) i=n;

if(jn) j=1;

}

if(a[i][j]==0)

a[i][j]=k;

else

{

i=i+2;

j=j-1;

a[i][j]=k;

}

}

/*輸出*/

for(i=1;i=n;i++)

{

for(j=1;j=n;j++)

printf("%5d",a[i][j]);

printf("\n");

}

}

#include stdio.h

int i,j,n,a[16][16]; /*全局定義方陣行、列、階數(shù)以及最大方陣容量*/

void creat() /*建立魔方陣*/

{

int k;

j=n/2+1;

a[1][j]=1;

for(k=2;k=n*n;k++)

{

i=i-1;

j=j+1;

if((i1)(jn))

{

i=i+2;

j=j-1;

}

else

{

if(i1) i=n;

if(jn) j=1;

}

if(a[i][j]==0)

a[i][j]=k;

else

{

i=i+2;

j=j-1;

a[i][j]=k;

}

}

}

void print() /*輸出魔方陣*/

{

for(i=1;i=n;i++)

{

for(j=1;j=n;j++)

printf("%5d",a[i][j]);

printf("\n");

}

}

void main()

{

int k,p,m;

while(1)

{

p=1;

while(p==1)

{

printf("請(qǐng)輸入n(0n=15,n是奇數(shù))\n");

scanf("%d",n);

if((n!=0)(n=15)(n%2!=0))

{

printf("矩陣階數(shù)是:%d\n",n);

p=0;

}

for(i=1;i=n;i++)

for(j=1;j=n;j++)

a[i][j]=0;

}

creat();

print();

}

}


當(dāng)前文章:魔方矩陣java代碼 魔方陣數(shù)據(jù)結(jié)構(gòu)
鏈接URL:http://weahome.cn/article/doejohi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部