神奇的约瑟夫环
来源:互联网 发布:三菱plcrs485通讯编程 编辑:程序博客网 时间:2024/06/03 07:38
#include<iostream>usingnamespacestd;main(){bool a[101]={0};intn,m,i,f=0,t=0,s=0;cin>>n>>m;do{++t;//逐个枚举圈中的所有位置if(t>n)t=1;//数组模拟环状,最后一个与第一个相连if(!a[t])s++;//第t个位置上有人则报数if(s==m)//当前报的数是m{s=0;//计数器清零cout<<t<<'';//输出被杀人编号a[t]=1;//此处人已死,设置为空f++;//死亡人数+1}}while(f!=n);}
n只猴子选大王,选举办法如下:从头到尾1,2,3,1,2,3……报数,凡报3的退出,余下猴子第二轮从尾到头1,2,3,1,2,3……报数,凡报3的退出...如此类推,当剩下两只猴子时,取这时报1的为王,若想当猴王,请问当初应占据什么位置?、此题思路如下:
首先定义结构体:一个序号,一个自己的数字;
每变一次数字,遇见数字为三就变为0(类似于bool型的false),,,
至于倒序,我是这样想的,让总数先取模三,然后判断第一个数是不是为0,每次查倒序的时候第一个为一,后面的定义一个for循环,自己定义序数,然后用总数减去它再取模三。
以上写的略乱,原谅我的语文表达能力不好(其实我本人的思路就是乱的)
*********************************************************************************************************************************************
第二个 思路是,这个问题其实就是圆圈问题,也就是之前的尾巴
同样定义结构体;
首先录入多少个人,然后报到三的变为零,这个和之前的一样,不一样的主要在于倒序变得简单的多
***********************************************************************************************************************************************
解决约瑟夫环的代码如下
15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。
#include<iostream>using namespace std;const int MAX=10050;struct node{int value;int next; } arr[MAX]; int m,n;void init(){ cin>>n>>m; for (int i=1;i<=n;i++) arr[i].value=i, arr[i].next=i+1; arr[n].next=1; }void work(){ int now=n; //从now后边的那个人开始数数。 for(int i=1;i<n;i++)//去掉n-1 个人。 { //数够m-1个人,下一个人就是要删掉的。 for(int j=1;j<m;j++) now=arr[now].next; int delnode=arr[now].next; //第m个就是要删掉的。 arr[now].next=arr[delnode].next; } cout<<arr[now].value;}int main(){ init(); work();return 0; }
0 0
- 神奇的约瑟夫环
- 约瑟夫环的算法
- 约瑟夫环的解决
- 约瑟夫环的实现
- 约瑟夫环的变形
- 约瑟夫环的解法
- 约瑟夫环的解决
- 约瑟夫环的点滴
- 约瑟夫环的推导
- 约瑟夫环的问题
- 约瑟夫环的变形
- 约瑟夫环的实现
- 约瑟夫环的变形
- 约瑟夫环的问题
- 约瑟夫环的实现
- 约瑟夫环的问题
- 约瑟夫环的问题
- 约瑟夫环的推导
- java学习day1
- 【剑指offer】从上往下打印二叉树
- 关于字符的转换和存储
- 多数据中心kafaka,flume使用情况
- java学习day2
- 神奇的约瑟夫环
- span标签
- jQuery基础修炼圣典—事件篇
- 如何优雅地退出python程序
- java SE集合类实现斗地主洗牌、牌排序
- HTML中的换行造成空格问题
- java学习day3
- HDFS文件浏览器(支持kerberos认证)
- Unity3D 脚本UTF-8编码/Unity3D 脚本支持中文