地獄男爵之博客無限
BlogJava
首頁
新隨筆
聯系
聚合
管理
posts - 33, comments - 70, trackbacks - 0
約瑟夫環算法(循環鏈表解決)
問題:約瑟夫環
?有編號從1到N的N個人坐成一圈報數,報到M的人出局,下一位再從1開始,
?如此持續,直止剩下一位為止,報告此人的編號X。輸入N,M,求出X。
約瑟夫環算法(循環鏈表解決).現在老師出的題還是那么....... 呵呵
?. 留個念像吧
java實現:
public
?
class
?Josephus?
{
????
public
?
static
?
void
?main(String[]?args)?
{
????????
if
(args.length
<
2
)
{
????????????System.out.println(
"
Input?N?and?M.
"
);
????????????
return
;
????????}
????????
int
?n?
=
?Integer.parseInt(args[
0
]);
????????
int
?m?
=
?Integer.parseInt(args[
1
]);
????????
int
?point
=
0
,number
=
1
;
????????List
<
Integer
>
?list?
=
?
new
?ArrayList
<
Integer
>
();
????????
for
(
int
?i
=
1
;i
<=
n;?i
++
)
{
????????????
//
初始化鏈表
????????????list.add(i);
????????}
????????
while
(list.size()
>
1
)
{
????????????
if
(number
%
m
==
0
)
{
????????????????list.remove(point);
????????????????
--
point;
????????????}
????????????
++
point;
//
指針后移
????????????
++
number;
????????????
if
(point
>
list.size()
-
1
)
{
????????????????
//
指針越界重新開始
????????????????point
=
0
;
????????????}
????????}
????????
????????System.out.println(list.get(
0
));
????????
????}
}
?
c實現:
#include?
<
stdio.h
>
struct?node
{
??
int
?v;
??struct?node?
*
next;
}
*
p,
*
head,h;?
//
head是頭指針,h是頭結點
main()
{
??
int
?n,m;
??
int
?i;
??puts(
"
請輸入人數n和報數上限m?:
"
);
??scanf(
"
%d%d
"
,
&
n,
&
m);
??h.next
=
NULL;?
//
頭結點的next為空
??head
=&
h;?????
//
頭指針指向頭結點
??p
=
head;??????
//
p也指向頭結點
??
/**/
/*
下面的循環用來建立循環鏈表
*/
??
for
(i
=
1
;i
<=
n;i
++
)
??
{
????p
->
next
=
(struct?node
*
)malloc(sizeof(struct?node));
????p
=
p
->
next;
????p
->
v
=
i;
????
if
(i
!=
n)
????
{
??????p
->
next
=
NULL;
????}
????
else
????
{
??????p
->
next
=
head
->
next;
????}
??}
??p
=
head;
??p
=
p
->
next;?
//
p指向第一個結點
??m
%=
n;
//
當m>n時有用
??
while
(p
!=
p
->
next)
??
{
????
for
(i
=
1
;i
<=
m
-
2
;i
++
)
????
{
??????p
=
p
->
next;
????}
????printf(
"
%d??
"
,p
->
next
->
v);
????p
->
next
=
p
->
next
->
next;
????p
=
p
->
next;
??}
??printf(
"
%d
"
,p
->
v);
}
posted on 2006-06-07 23:37
地獄男爵(hellboys)
閱讀(13327)
評論(19)
編輯
收藏
FeedBack:
#
re: 約瑟夫環算法(循環鏈表解決)
2006-10-15 10:36 |
shaoshuai
挺好挺好
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2006-10-16 00:00 |
doyphine
你的程序有點問題,有待解決喲!!你自己代幾個數進去看看就知道了,我只試了C的
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2006-10-16 19:43 |
有點傻
看不懂哦~
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2006-10-17 11:30 |
榆錢
你的程序的密碼好像就是剛開始排列時每個人的序號,是嗎??而且你的輸出有問題,挺大的問題
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2006-10-17 11:39 |
hellboys
java的測試過,沒問題。 c的只作參考(未測試過)。
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2006-10-23 22:24 |
tian
very good Thank you very much.
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)[未登錄]
2008-01-20 14:15 |
hhh
我也覺得,雖然不同的語言,但算法流程應該相同。可是你的呢,兩種語言都不一樣~~~
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2008-03-27 21:06 |
22
根本就不對
C語言的!
回復
更多評論
#
約瑟夫環算法C++
2008-05-20 17:43 |
呂起民
enum{N = 10,M=7};
int main(int argc, char* argv[])
{
char array[N] = {1,2,3,4,5,6,7,8,9,10};
int nCount = N;
int i = 0;
while(nCount > 1)
{
i = (i+M-1)%nCount;
printf("%d\n",array[i]);
memcpy(array+i,array+i+1,nCount-i);
nCount --;
// array[nCount] = 0;//可省此行
}
printf("約瑟夫=%d\n",array[0]);
return array[0];
}
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2008-10-30 17:32 |
dove52208@126.com
呵呵 在#include <stdio.h>
后加上#include <stdlib.h>之后 C的就可以實現了!!
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2009-02-01 17:56 |
johnpzd
原文思路很經典,佩服!!!
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2009-07-17 11:47 |
s
hh
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2009-07-17 11:47 |
s
ddddddddddddddddddddd
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2009-10-10 23:01 |
冷如冰
C語言描述的不是很準確
如果n = 10,m = 3,則程序的輸出可能就會出現問題。
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2009-10-29 21:46 |
wx
挺好的,c的漏粘include<stdlib.h>,因為有用到malloc函數。
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2010-03-17 11:39 |
teamoGod
其他的沒問題,只有當m=1的時候不對。
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2010-06-09 21:03 |
huchuhan
哥們啥是鏈表?
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)[未登錄]
2011-09-12 16:54 |
Sky
@huchuhan
看不懂
!
回復
更多評論
#
re: 約瑟夫環算法(循環鏈表解決)
2012-03-19 10:28 |
527055685@qq.com
約瑟夫環的變體-37個奴隸問題,我也用了循環鏈表去做
#include <stdio.h>
#include <stdlib.h>
#define MAX 111 //總的奴隸數
#define DIE 3 //數K個,第K個要被殺
typedef struct link{
int value; //用了保存奴隸的編號
struct link *next;
}* loop_link;
void fun(struct link *slave);
int main(void)
{
loop_link slave=NULL,current,head;
int i;
for(i=1;i<=MAX;i++)
{
current=malloc(sizeof(struct link));
current->value=i;
current->next=NULL;
if(slave==NULL)
{
slave=current;
head=slave;
}
else
{
slave->next=current;
slave->next=slave->next;
slave=slave->next;
}
}
slave->next=head; /*將最后一個奴隸指向第一個奴隸,最終在這里形成一個循環鏈表 */
slave=head;
fun(slave);
return 0;
}
void fun(struct link *slave)
{
int j;
struct link* current;
if(slave->value==slave->next->value)
printf("這個編號為%d的奴隸不用被殺\n",slave->value);
else
{
for(j=1;j<DIE;j++)
{
current=slave;
slave=slave->next;
}
current->next=slave->next;
current=slave;
slave=current->next;
free(current);
fun(slave);
}
}
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Copyright ©2025 地獄男爵(hellboys) Powered By:
博客園
模板提供:
滬江博客
<
2006年6月
>
日
一
二
三
四
五
六
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
6
7
8
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
隨筆分類
bash
vim(1)
系統綜合(12)
編程語言(c/c++ java python sql ......)(7)
隨筆(6)
隨筆檔案
2010年11月 (1)
2009年3月 (2)
2008年12月 (1)
2008年11月 (1)
2008年6月 (1)
2007年12月 (1)
2007年11月 (1)
2007年4月 (2)
2007年3月 (1)
2006年11月 (1)
2006年10月 (1)
2006年9月 (2)
2006年8月 (1)
2006年7月 (2)
2006年6月 (6)
2006年5月 (3)
2006年4月 (5)
2006年3月 (1)
文章檔案
2005年12月 (1)
相冊
SARA--以后LP的標準?
恍惚的美麗(2007年的五一)
連接
差沙
我以前blog地址
聰明的豬(cleverpig)
最新隨筆
1.?Open MacVim tabs from command-line
2.?優化MySQL數據庫性能的八種方法
3.?Hadoop分布式文件系統(HDFS)的安全隱患
4.?sssh v2.0 - 快速 ssh 登陸腳本
5.?mod_python在 RHEL/CentOs 64 位編譯上的問題
6.?我想應聘中國男子國家足球隊主教練一職
7.?Android中文文檔v0.1 beta低調發布,期待更多同學來參加review
8.?歡迎訪問Android中國
9.?ActiveMQ4.1 +Spring2.0的POJO JMS方案 擴展,以更加實用(基于ss).二
10.?ActiveMQ4.1 +Spring2.0的POJO JMS方案 擴展,以更加實用(基于ss)
搜索
最新評論
1.?re: Mysql 集群簡介和配置[未登錄]
@dustin
動不動就說不穩定,人家島國的有個很大很大的社交網站就是這么搞的。你有啥子證據說不穩定,服了你。
--菜鳥
2.?re: 約瑟夫環算法(循環鏈表解決)
評論內容較長,點擊標題查看
--527055685@qq.com
3.?re: 約瑟夫環算法(循環鏈表解決)[未登錄]
@huchuhan
看不懂
!
--Sky
4.?re: Mysql 集群簡介和配置
評論內容較長,點擊標題查看
--tmeper
5.?re: 約瑟夫環算法(循環鏈表解決)
哥們啥是鏈表?
--huchuhan
閱讀排行榜
1.?Mysql 集群簡介和配置(61959)
2.?約瑟夫環算法(循環鏈表解決)(13327)
3.?妙解網絡多臺dhcp引起的IP沖突 (5880)
4.?Compass - springside 中的應用(5419)
5.?mod_python在 RHEL/CentOs 64 位編譯上的問題(3648)
評論排行榜
1.?約瑟夫環算法(循環鏈表解決)(19)
2.?Compass - springside 中的應用(18)
3.?Mysql 集群簡介和配置(7)
4.?不要一輩子靠技術生存(7)
5.?我想應聘中國男子國家足球隊主教練一職(5)
主站蜘蛛池模板:
亚洲国产一区二区a毛片
|
国产成人亚洲精品91专区手机
|
亚洲国产精品婷婷久久
|
免费在线黄色电影
|
亚洲av无码不卡一区二区三区
|
中文字幕的电影免费网站
|
亚洲人精品午夜射精日韩
|
嫩草在线视频www免费观看
|
亚洲伊人色欲综合网
|
日韩免费视频一区二区
|
久久亚洲AV成人无码电影
|
国产免费看JIZZ视频
|
亚洲.国产.欧美一区二区三区
|
青青青国产色视频在线观看国产亚洲欧洲国产综合
|
亚洲人成电影网站色www
|
国产视频精品免费
|
色吊丝性永久免费看码
|
亚洲精品无码不卡在线播放HE
|
免费人成网站在线观看不卡
|
亚洲日韩国产精品无码av
|
女人毛片a级大学毛片免费
|
美女扒开尿口给男人爽免费视频
|
亚洲一区二区三区在线视频
|
免费无码VA一区二区三区
|
亚洲一区二区三区在线网站
|
国产精品公开免费视频
|
一区二区3区免费视频
|
久久精品国产亚洲av麻豆小说
|
免费H网站在线观看的
|
国产精品亚洲专区无码WEB
|
亚洲欧洲日产国码av系列天堂
|
一区二区三区四区免费视频
|
亚洲色偷偷偷综合网
|
国产亚洲精品精品国产亚洲综合
|
久久久久国产精品免费网站
|
亚洲一区二区三区久久
|
亚洲精品天堂成人片?V在线播放
|
最近免费中文字幕大全高清大全1
|
亚洲暴爽av人人爽日日碰
|
国产成人亚洲精品青草天美
|
免费一本色道久久一区
|