地狱男爵之博客无限
BlogJava
首页
新随笔
联系
聚合
管理
posts - 28, comments - 53, 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)
阅读(4004)
评论(9)
编辑
收藏
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];
}
回复
更多评论
新闻频道
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2006-06-09 09:51 编辑过
成果网帮您增加网站收入
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
<
2008年9月
>
日
一
二
三
四
五
六
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
9
10
11
常用链接
我的随笔
我的评论
我的参与
最新评论
随笔分类
系统综合(12)
编程语言(c/c++ java python sql ......)(6)
随笔(6)
随笔档案
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. 我想应聘中国男子国家足球队主教练一职
2. Android中文文档v0.1 beta低调发布,期待更多同学来参加review
3. 欢迎访问Android中国
4. ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss).二
5. ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss)
6. 一台主机被多台电脑监控 (keyword:cacti,snmp,snmpd.conf)
7. 妙解网络多台dhcp引起的IP冲突
8. 不得不笑! 上班时什么人听什么音乐!!
9. P2P之UDP穿透NAT的原理与实现
10. 不要一辈子靠技术生存
搜索
最新评论
1. re: 我想应聘中国男子国家足球队主教练一职[未登录]
无奈、、、 博主煞费苦心了
--过客
2. re: 我想应聘中国男子国家足球队主教练一职[未登录]
强,我也觉得这方法对于中国国家对有很大的可行性.
--huang
3. re: 我想应聘中国男子国家足球队主教练一职[未登录]
支持!!!
--u
4. re: 我想应聘中国男子国家足球队主教练一职
有才!很有才! 是原创吗?转载可否?
--如坐春风
5. re: 我想应聘中国男子国家足球队主教练一职[未登录]
博主好强!
--Paul Lin
阅读排行榜
1. Mysql 集群简介和配置(4990)
2. 约瑟夫环算法(循环链表解决)(4004)
3. Compass - springside 中的应用(3690)
4. 如何更好的通过p2p网络观看世界杯.(1909)
5. ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss)(1499)
评论排行榜
1. Compass - springside 中的应用(18)
2. 约瑟夫环算法(循环链表解决)(9)
3. 不要一辈子靠技术生存(7)
4. Mysql 集群简介和配置(5)
5. 我想应聘中国男子国家足球队主教练一职(5)