最近面试,被问到了一个约瑟夫环的问题,有空用循环数组写了一个
来源:互联网 发布:网络电话软件排名 编辑:程序博客网 时间:2024/04/29 21:37
#include "stdio.h"
static int a[10] = {1,1,1,1,1,1,1,1,1,1};
static int length = 10;
void h_begin()
{
int i = 0,flag = 0,k = 0;
int bk = 0;
int flag1 = flag;
for(i = 0; (i = i%10)<10 ; ++i)
{
if(k<3 && (a[i]!=0))
{
k++;
}
else if((k == 3) && a[i] != 0)
{
k = 0;
a[i] = 0;
printf("i = %d /n", i);
flag ++;//printf("flag = %d /n",flag);
if(flag == 10)
break;
}
else if((k == 3) && a[i] == 0)
{
continue;
}
}
return;
}
int main()
{
h_begin();
}
从网上找到了一个,写的不错:
#include <stdio.h>
int main()
{
int n;
int n1=0; //表示报数记数器
int p=0; //指向当前数组元素的下标
int NumOfKing; //大王的编号
int M,K; //M为已知猴子总数,K为报数的量级
int a[1000];
FILE *fp1,*fp2;
if((fp1=fopen("monkey.in","r"))==NULL)
{
printf("cann't open file!/n");
return 0;
}
fscanf(fp1,"%d%d",&M,&K); //从文件中读取已知数据
n=M; //M为圈的长度,即初始猴子数
for(int i=0;i<n;i++)
a[i]=1; //初试话状态数组,所有猴子都是就位的
while(n>1) //n当前圈内还剩下的猴子数,控制循环在圈内只剩下一只猴子时结束循环
{
while(n1<K) //n1表示报数记数器,每报一次n1加1,直到报完k个数之后结束此循环
{
if(a[p]==1 ) //如果当前位置有猴子
{
n1++; //报数记数器加1
if(n1==K)
a[p]=0; //将第K次报数的猴子置0,表示退出圈子
}
p++; //移动到下一个位置
p=p%M; //这一步是为了解决循环数组成环遍历的目的
}
n1=0; //当报完K个数后将报数记数变量清0,以备下次重新报数
n--; //当报完一轮后总猴子数减1
}
for(int i=0;i<M;i++) //最后遍历一遍状态数组 找到状态为1的下标i+1即为猴子大王的编号
{
if(a[i]==1)
{
NumOfKing=i+1;
break;
}
}
fp2=fopen("monkey.out","w");
fprintf(fp2,"%d",NumOfKing);
fclose(fp1);
fclose(fp2);
return 0;
}
- 最近面试,被问到了一个约瑟夫环的问题,有空用循环数组写了一个
- 用循环列表解决一个约瑟夫问题
- 最近遇到了一个用placement new动态创建二维数组的问题,分享一下
- 面试中经常被问到一个shell命令的问题,但是一直不会,被百度问了,赶紧回来查查
- 原来用循环链表写的现在用数组写(删除数据的,我找到了一个规律)
- 面试问的比较多的一个基础问题
- 最近写了一个专门收集网页信息的工具
- 面试经常问的一个问题:final、finalize、finally
- 关于约瑟夫环的一个问题
- 我最近用Python写了一个算法,不需要写任何规则就能自动识别一个网页的内容
- 最近自己用C++写了一个排序类
- 现在有空了,回来解决四年前uboot 读写fat 分区的一个txt文件问题
- C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
- 最近用了很多easyui,写一个不好找的表头修改样式
- 约瑟夫问题(用数组实现循环链式)
- C语言:写一个约瑟夫环的程序
- 问一个问题;我用的是JC,为什么最近总不能正常的点出对象的方法
- 问一个棘手的问题!!
- JSP中web.xml的配置
- 用于编写configure.in的 Config语言简介
- 我所熟悉的网站负载均衡技术
- 遇到的第一个问题
- QDebug
- 最近面试,被问到了一个约瑟夫环的问题,有空用循环数组写了一个
- 工作了!!
- Linq To Xml 备忘录2(X* 类的使用)
- iis 不能解析asp问题
- 一个故事告诉你~最值得珍惜的是什么!
- 平淡生活:祝我生日快乐
- 二叉排序树
- ssvdfs
- 一个难找的BUG