约瑟夫Josephus解法
来源:互联网 发布:婚礼网络直播 编辑:程序博客网 时间:2024/06/05 23:52
1、链表方式:
#include <stdio.h>
#include <malloc.h>
struct node_t
{
int value;
struct node_t *next;
};
int main()
{
struct node_t *pe;
struct node_t *first;
int n, i;
printf("please input in n ");
scanf("%d", &n);
pe = (struct node_t *) malloc(sizeof(struct node_t) * n);
for (i=0;i<n - 1;i++) /*初始化循环链表*/
{
(pe + i)->value = i+1;
(pe + i)->next = pe + i + 1;
}
(pe + i)->value = i + 1;
(pe + i)->next = pe;
first = pe;
while(1)
{
first = first->next; /*指向报数的二号*/
first->next = first->next->next; /*将3号从链表中去掉*/
if(first->next == first) /*判断链表是否只剩最后一个元素*/
break;
first = first->next; /*指针指向后续报数元素*/
}
printf("the last one is %d ", first->value);
free(pe);
}
1/////////////////////////////////////////////////////////////////////////////
2/// 算法与数据结构 Josephus 问题解决方案 ///
3/// 用方法一非递归进行出列运算源程序 ///
4/////////////////////////////////////////////////////////////////////////////
5
6
7#include <iostream>
8using namespace std;
9
10int n,s,m;//设置全局变量
11int *seat;//数组指针,指向各座位,注意这里以系统内部index base 0为准。
12int main()
13{
14 //参数输入
15 cout<<"please input n:";
16 cin>>n;
17 cout<<"please input s:";
18 cin>>s;
19 cout<<"plesae input m:";
20 cin>>m;
21 //分配座位表空间
22 seat=new int[n];
23 //对各座位上people的编号
24 for(int i(0);i<n;i++)
25 {
26 seat[i]=i+1;
27 }
28
29
30 //将变量转化为系统内部index base 0;
31 s--;
32
33 //方便需要
34 m--;
35
36 int temp;
37
38 for(int i=0;i<n;i++)
39 {
40 s=(s+m)%(n-i);//第S位被OUT,s base 0;
41 if(s!=n-i-1)//当s=n-i-1时并不需要进行移位
42 {
43 temp=seat[n-i-1];
44 seat[n-i-1]=seat[s];
45 for(int j=s;j<n-i-2;j++)
46 seat[j]=seat[j+1];
47 seat[n-i-2]=temp;
48 }
49
50 }
51
52 //输出出列顺序表
53 cout<<"the out people list is:";
54 for(int i=n-1;i>=0;i--)
55 cout<<"P"<<seat[i]<<" ";
56
57 //释放座位数组空间
58 delete []seat;
59
60 return 0;
61}
- 约瑟夫Josephus解法
- 约瑟夫环问题(Josephus)的C解法
- Josephus Problem (约瑟夫环数学解法)
- Josephus约瑟夫环问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题 Josephus
- 约瑟夫问题(Josephus)
- 约瑟夫问题(Josephus problem)
- Josephus(约瑟夫)问题
- 约瑟夫环 josephus
- Josephus Circle 约瑟夫环
- Josephus约瑟夫环问题
- 约瑟夫环问题(Josephus)
- Josephus problem(约瑟夫问题)
- Josephus 约瑟夫问题
- Josephus(约瑟夫环)问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题(Josephus)
- 琵琶行--白居易
- 有关new File中的路径问题
- IRC
- 大型架构.net平台篇(中间层均衡负载WCF)
- 深入理解Android消息处理系统——Looper、Handler、Thread
- 约瑟夫Josephus解法
- SQL Server安装程序无法获取ASPNET账户的系统账户信息
- x86 浮点运算
- 奇异值分解(SVD) C编程实现
- Oracle 闪回特性(Flashback Query、Flashback Table)
- 解决WCF默认十分钟剔除客户端问题
- 《华清远见学习手记》之 ubuntu8.10 下搭建QT4.4.0开发环境
- 史上最坚强剩男 60后刘备的奋斗启示
- RMI实现一个学生成绩或教师信息查询的程序