C语言,数组实现约瑟夫环问题(两种方法)
(2012-10-16 18:21:07)
标签:
约瑟夫圈解法公式it |
分类: 算法 |
约瑟夫环问题:约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
第一种方法:要求将每次出列的人的序号输出,并输出最后一个出列的人。
代码如下:
[html]
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
第二种方法:只要求出最后出列的那个人的位置即可
这种方法利用了约瑟夫环的公式,用到了递归,相对简单。
代码如下,
[html]
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
希望对各位有用。
我的博客:
我的邮箱:
jinhuer168@163.com