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

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

java九宮格代碼 九宮格代碼實(shí)現(xiàn)

java 輸出九宮格

將你其中某些問題的答案放在代碼注釋中了.

創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來(lái),先為綏德等服務(wù)建站,綏德等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為綏德企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

這個(gè)程序輸出的是固定的九宮格,我想,是根據(jù)固有的九宮格中的數(shù)字與數(shù)組下標(biāo)的關(guān)系來(lái)寫的代碼。

希望對(duì)你有所幫助,加油!

class?S{

public?static?void?main(String[]?args)?{?

int?arr[][]?=?new?int[3][3];?

//創(chuàng)建一個(gè)三階方陣??

int?a?=?2;????????

//第3行的行下標(biāo)

//???這里是什么意思,2從何而來(lái)

//A:java中數(shù)組的下標(biāo)從0開始

int?b?=?3/2;????

//第2列的列下標(biāo)

//???同上?

//A:這里由于b=1,(int)/(int),java中數(shù)組的下標(biāo)從0開始

for(int?i=1;i=9;i++){??

//給數(shù)組賦值???

arr[a++][b++]?=?i;??

if(i%3==0){?????

//如果i是3的倍數(shù)——————???為什么要判斷是不是3的倍數(shù)?

a?=?a-2;

//————————————————???if...else里面的語(yǔ)句是什么意思,作用是什么???

b?=?b-1;//————————————————???同上??

}

//使a,b回到起點(diǎn):a=2,b=1;

else{???????

//如果i不是3的倍數(shù)//————————————————???同上????

a?=?a%3;???

b?=?b%3;???

}??

}

//????九宮格的每一行、每一列、對(duì)角線都等于15,

//???但是這里連一個(gè)15這個(gè)數(shù)字都沒有出現(xiàn),但還是成功輸出

//————————————————————???他是怎么做到的?

System.out.println("輸出九宮格:");???

//遍歷輸出九宮格??

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

for(int?j=0;j3;j++){??

System.out.print(arr[i][j]+"??");?

}

System.out.print("\n");//從你的程序中將此語(yǔ)句上移到此位置?

}

}

}

java 寫一個(gè)九宮格的代碼!不用很復(fù)雜,實(shí)現(xiàn)了基本的功能就行! 謝謝大家!我自己寫的都暈了

/*

九宮格算法代碼 C++版

*/

#include stdio.h

int map[9][9] = {0, 0, 3, 8, 1, 0, 0, 0, 9,

5, 0, 0, 4, 0, 0, 0, 8, 0,

0, 6, 0, 9, 0, 0, 1, 0, 0,

0, 0, 8, 0, 3, 0, 0, 0, 6,

0, 0, 0, 0, 0, 0, 0, 0, 0,

9, 0, 0, 6, 0, 0, 5, 0, 0,

0, 0, 6, 0, 0, 9, 0, 1, 0,

0, 1, 0, 0, 0, 5, 0, 0, 4,

2, 0, 0, 0, 4, 8, 7, 0, 0};

void display()

{

int i;

int j;

for (i = 0; i 9; i++)

{

for (j = 0; j 9; j++)

{

if(map[i][j])

{

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

}

else

{

printf(" ");

}

}

printf("\n");

}

}

int check(int x, int y, int *mark) //check函數(shù)為該格子可以選擇的數(shù)字

{

int i;

int j;

int gi;

int gj;

int count = 0;

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

{

mark[i] = 0; //初始化

}

for (i = 0; i 9; i++)

{

mark[map[x][i]] = 1; //表示該行該數(shù)字已存在

mark[map[i][y]] = 1; //表示該列該數(shù)字已存在

}

gi = x / 3 * 3; // 九宮格把map分割成9個(gè)小塊,如果該格子所在行列為(1,4),那么它所在子格子起始為(0,3)到(2,5)的九個(gè)小格子

gj = y / 3 * 3;

for (i = 0; i 3; i++)

{

for (j = 0; j 3; j++)

{

mark[map[gi + i][gj + j]] = 1; //此循環(huán)為表示所在子格子的九個(gè)小格子中已存在該數(shù)字

}

}

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

{

if(0 == mark[i]) //如果該數(shù)字不存在則++

{

count++;

}

}

return count;

}

void crack() //??

{

int i;

int j;

int mark[10]; //標(biāo)志數(shù)字是否已存在

int min = 10; //記錄最少可能數(shù)字?jǐn)?shù)

int ci = -1; //ci,cj用來(lái)記錄最少可能數(shù)字的格子所在行列

int cj;

for (i = 0; i 9; i++)

{

for (j = 0; j 9; j++)

{

if (map[i][j])

{

continue; //如果該格子已有數(shù)字則跳到下一個(gè)格子

}

int c = check(i, j, mark); //c為該格子可以選擇的數(shù)字

if (0 == c)

{

return;

}

if (c min)

{

ci = i;

cj = j;

min = c;

}

}

}

if (-1 == ci)

{

printf("The answer is:\n");

display();

return;

}

check(ci, cj, mark);//這個(gè)語(yǔ)句的作用是把mark這個(gè)數(shù)組設(shè)置成最小可能格子缺少的數(shù)字,若缺少則為0

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

{

if (mark[i] == 0)

{

map[ci][cj] = i; //先填入該數(shù)字

crack(); //進(jìn)行判斷

}

map[ci][cj] = 0; //若這個(gè)數(shù)字不可以得到解則判斷下一可能數(shù)字(這里類似0-1背包問題)

}

}

int main()

{

printf("The game is:\n");

display();

crack();

return 0;

}

java編程題,在九宮格內(nèi)填入1—9九個(gè)數(shù)字,使得橫豎排的數(shù)字相加之和都相等

/*直接復(fù)制運(yùn)行就可以,每一行的九個(gè)數(shù)字代表一個(gè)九宮格的9個(gè)數(shù)字,從左到右,從上到下*/

import?java.util.ArrayList;

import?java.util.Arrays;

public?class?Test1?{

private?static?ArrayListString?arrangeList?=?new?ArrayListString();?

?public?static?void?main(String[]?args)?{

String?str?=?"123456789";//你要排列組合的字符串

char?list[]?=?str.toCharArray();//將字符串轉(zhuǎn)換為字符數(shù)組

genernateData(list,?0,?list.length?-?1);//參數(shù)為字符數(shù)組和0和字符數(shù)組最大下標(biāo)

int?arr[]=new?int[9];

for(String?str1?:?arrangeList){

for(int?k=0;k9;k++){

arr[k]=Integer.parseInt(str1.substring(k,k+1));

}

if(arr[0]+arr[1]+arr[2]==15arr[3]+arr[4]+arr[5]==15arr[6]+arr[7]+arr[8]==15arr[0]+arr[3]+arr[6]==15arr[1]+arr[4]+arr[7]==15arr[2]+arr[5]+arr[8]==15arr[0]+arr[4]+arr[8]==15arr[2]+arr[4]+arr[6]==15){

System.out.println(Arrays.toString(arr));

}

}

}

?

public?static?void?genernateData(char?list[],?int?k,?int?m)?{

?if?(k??m)?{

?StringBuffer?sb?=?new?StringBuffer();//創(chuàng)建一個(gè)StringBuffer對(duì)象sb

?for?(int?i?=?0;?i?=?m;?i++)?{

?sb.append(list[i]);//循環(huán)將字符數(shù)組值追加到StringBuffer中

?}

?arrangeList.add(sb.toString());

?}?else?{

?for?(int?i?=?k;?i?=?m;?i++)?{

?swapData(list,?k,?i);//將下表為k和i的值調(diào)換位置

?genernateData(list,?k?+?1,?m);

?swapData(list,?k,?i);

?}

?}

}

private?static?void?swapData(char?list[],?int?k,?int?i)?{

char?temp?=?list[k];

list[k]?=?list[i];

list[i]?=?temp;

}

}


分享題目:java九宮格代碼 九宮格代碼實(shí)現(xiàn)
標(biāo)題URL:http://weahome.cn/article/hhchip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部