求解约瑟夫问题
2007-02-08 23:43
387 查看
1
6#include "stdafx.h"
7#include <stdio.h>
8#define n 10 //猴子的数量
9#define m 4 //报到m号的退出圈外
10
11void main()
12{
13 int a
,i,count=0,n1=0; //a
猴子的数量
14
15 printf("出队前:");
16 for(i=0;i<n;i++)
17 {
18 a[i]=i+1;
19 printf("%d ",a[i]);
20 }
21
22 printf("\n出队后:");
23
24 while(n1<n) //n1用来计算退出到圈外的猴子个数
25 {
26 for(i=0;i<n;i++)
27 {
28 if(a[i]!=0) //没有退出到圈外的猴子报数
29 count++; //报数
30 if(count==m) //报到m号的猴子退出
31 {
32 printf("%d ",a[i]);
33 a[i]=0; //报到m号的猴子退出,即设定a[i]=0
34 count=0; //重新报号
35 n1++; //有一个猴子退出
36 }
37 }
38 }
39
40}
6#include "stdafx.h"
7#include <stdio.h>
8#define n 10 //猴子的数量
9#define m 4 //报到m号的退出圈外
10
11void main()
12{
13 int a
,i,count=0,n1=0; //a
猴子的数量
14
15 printf("出队前:");
16 for(i=0;i<n;i++)
17 {
18 a[i]=i+1;
19 printf("%d ",a[i]);
20 }
21
22 printf("\n出队后:");
23
24 while(n1<n) //n1用来计算退出到圈外的猴子个数
25 {
26 for(i=0;i<n;i++)
27 {
28 if(a[i]!=0) //没有退出到圈外的猴子报数
29 count++; //报数
30 if(count==m) //报到m号的猴子退出
31 {
32 printf("%d ",a[i]);
33 a[i]=0; //报到m号的猴子退出,即设定a[i]=0
34 count=0; //重新报号
35 n1++; //有一个猴子退出
36 }
37 }
38 }
39
40}
相关文章推荐
- 约瑟夫问题求解(C++)
- 约瑟夫(Josephus)问题的求解——利用循环链表
- 三种方法求解约瑟夫环问题
- 约瑟夫问题三种求解方法
- 约瑟夫问题的笨方法求解程序
- 约瑟夫问题的求解
- 约瑟夫问题各种求解办法
- 【java算法】约瑟夫问题求解
- 6-1利用数组求解约瑟夫问题
- 约瑟夫问题求解
- 约瑟夫问题求解
- 约瑟夫问题的Python和C++求解方法
- 约瑟夫问题的Python和C++求解方法
- 约瑟夫问题求解
- C语言求解约瑟夫问题
- Linux内核思想链表的系列循环链表以及求解约瑟夫问题
- 通过调用顺序表函数来求解“约瑟夫问题”
- 约瑟夫问题递归求解
- 趣味问题 约瑟夫圈的数组求解方法
- 数据结构学习中的简单问题(二):用循环链表求解简单约瑟夫问题