可愛的琪琪,開心快樂每一天
溫馨小屋
可愛的琪琪,開心快樂每一天
BlogJava
首頁
新隨筆
新文章
聯系
聚合
管理
posts - 7,comments - 39,trackbacks - 0
<
2025年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆分類
C#(1)
java(3)
隨筆檔案
2007年3月 (2)
2007年2月 (2)
2006年11月 (1)
2006年10月 (1)
2006年9月 (1)
文章分類
C#(2)
雜文(4)
文章檔案
2007年3月 (2)
2007年1月 (1)
2006年9月 (4)
相冊
football
同學博客
謝良劍
謝良劍
搜索
最新評論
1.?re: c#中如何讓form窗體最大化
嗯嗯,用到了,感謝分享,QQQ
--今日
2.?re: c#操作excel后關閉excel.exe的方法[未登錄]
試試哈,謝謝了啊
--liu
3.?re: c#操作excel后關閉excel.exe的方法
謝謝,真的搞定了。
--nbbnmm
4.?re: c#操作excel后關閉excel.exe的方法
一發布就用不了,拒絕訪問?。?!不知道是不是權限問題,誰解決了?
--關閉excel
5.?re: c#中如何讓form窗體最大化
@鄙視你
@ff
--ff
閱讀排行榜
1.?c#操作excel后關閉excel.exe的方法(10176)
2.?大數據量insert與update語句的效率問題(6103)
3.?oracle時間模糊查詢(4908)
4.?如何解決使用jxl寫excel文件出現的內存泄露的情況(2083)
5.?如何在struts中使用tiles(769)
評論排行榜
1.?c#操作excel后關閉excel.exe的方法(16)
2.?oracle時間模糊查詢(8)
3.?如何解決使用jxl寫excel文件出現的內存泄露的情況(1)
4.?大數據量insert與update語句的效率問題(1)
5.?據說被稱為世上最經典的15句話 (0)
八皇后問題
???? 網上看面試題時看到,摘抄別人寫的一個程序,并做了一些注解,翻譯為java版,記錄一下
package
?chenqi;
/**?*/
/**
?*?要求:試編寫程序實現將八個皇后放置在國際象棋棋盤的無沖突的位置上的算法,并給出所有的解。
?*?提示:在國際象棋上放置皇后時,任何一個皇后的水平、豎直和斜45o都不能有另一個皇后。
?*?解決該問題采用逐次試探的方法,即采用遞歸調用putchess函數的方法。
?*?首先將第一個皇后放于第一行第一列,然后開始向下一行遞歸。
?*?每一步遞歸中,首先檢測待放置位置是否與已放置的皇后沖突,如不沖突,則進行下一行的放置,
?*?否則,選擇該行的下一個位置進行檢測。如整行的位置都沖突,則回到上一行,重新選擇位置源碼:
?*?
@author
?Administrator
?*
?
*/
public
?
class
?EightQueen?
{
????
//
8根線代表8列,數組中每個對象存的值表示皇后在該列的位置
????
int
[]?line?
=
?
new
?
int
[
8
];
????
int
?answer
=
0
;
????
????
/**?*/
/**
?????*?判斷是否有沖突---用試探法,判斷是否與其他列有沖突
?????*?
@param
?t
?????*?
@return
?返回0表示沒有沖突,返回1表示有沖突
?????
*/
????
private
?
int
?Judge(
int
?t)?
{
????????
int
?i,?n?
=
?
0
;
????????
for
?(i?
=
?
0
;?i?
<
?t;?i
++
)?
{
????????????
//
第一種沖突情況:2列處于同一行沖突
????????????
if
?(line[i]?
==
?line[t])?
{
????????????????n?
=
?
1
;
????????????????
break
;
????????????}
????????????
//
2列處于斜向上45度對角線沖突
????????????
if
?(line[i]?
+
?i?
==
?line[t]?
+
?t)?
{
????????????????n?
=
?
1
;
????????????????
break
;
????????????}
????????????
//
2列處于斜向下45度對角線沖突
????????????
if
?(line[i]?
-
?i?
==
?line[t]?
-
?t)?
{
????????????????n?
=
?
1
;
????????????????
break
;
????????????}
????????}
????????
return
?n;
????}
????
????
/**?*/
/**
?????*?主要控制函數
?????*?
@param
?n
?????
*/
????
private
?
void
?control(
int
?n)
????
{
????????
int
?t?
=
?
8
;
????????
for
?(line[n]?
=
?
0
;?line[n]?
<
?t;?line[n]
++
)?
{
????????????
if
?(Judge(n)?
==
?
1
)
????????????????
continue
;
????????????
else
?
if
?(n?
!=
?
7
)
????????????????control(n?
+
?
1
);
????????????
else
????????????????show();
????????}
????}
????
????
/**?*/
/**
?????*?顯示擺放的結果
?????*?
?????
*/
????
private
?
void
?show()?
{
????????
int
?i,?j;
????????
for
?(i?
=
?
0
;?i?
<
?
8
;?i
++
)?
{
????????????
for
?(j?
=
?
0
;?j?
<
?
8
;?j
++
)?
{
????????????????
if
?(line[i]?
==
?j)
????????????????????System.out.print(
"
Q
"
);
????????????????
else
????????????????????System.out.print(
"
*
"
);
????????????}
????????????System.out.println();
????????}
????????answer
++
;
????????System.out.println();
????????System.out.println(answer);
????}
????
????
public
?
static
?
void
?main(String[]?args)?
{
????????EightQueen?s?
=
?
new
?EightQueen();
????????s.control(
0
);
????????System.out.println(s.answer);
????}
????
}
這段代碼感覺又簡潔又易懂,再次感謝他的作者:
http://blog.chinaunix.net/u/26924/showart_228365.html
posted on 2007-02-28 23:38
陳琪
閱讀(469)
評論(0)
編輯
收藏
所屬分類:
java
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
大數據量insert與update語句的效率問題
八皇后問題
如何在struts中使用tiles
Copyright ©2025 陳琪 Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
娱乐
|
永州市
|
舟山市
|
西华县
|
高邑县
|
花垣县
|
仁怀市
|
鄂托克旗
|
九龙坡区
|
三穗县
|
阿瓦提县
|
报价
|
四平市
|
大安市
|
房产
|
玛曲县
|
且末县
|
美姑县
|
阿坝县
|
茂名市
|
常州市
|
广宗县
|
大姚县
|
牡丹江市
|
曲周县
|
旬阳县
|
赫章县
|
正蓝旗
|
贵港市
|
拜泉县
|
兴文县
|
明星
|
阜南县
|
昭通市
|
平罗县
|
沧州市
|
巩义市
|
隆安县
|
米泉市
|
米林县
|
金昌市
|