1192 约瑟夫问题(1)

Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)

Submits : 1235 | Solved : 716

Description

模拟这个游戏。有n个人围成一圈,从第一个人开始沿顺时针方向报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人?

Input

输入一个整数n。(n<=1000)

Output

输出最后剩下的数。

Sample Input

5

Sample Output

4

HINT

Source

NBU OJ
解题思路:解题方法:用了模拟法,也就是通过数组来模拟这个报数的过程,设置两个数组其中一个用来存储开始准备报数的编号,后一个数组用来对报完数后的编号进行更新,例如:a{123} 报到3的时候把3去掉也就是a[3]=0(我这边是从一开始),然后剩下更新就由b数组来操作,其中_index为数组下标,下标之所以等于(flag+i)%ans 例如 12 当从1开始报数的时候报到3时候又回到下标1,以此类推,欧了。
代码:
import java.util.Scanner;public class Main {public static void main(String[] args){Scanner sc=new Scanner(System.in);//12345  1245 245 24 4int n=sc.nextInt();int a[]=new int[1000];int b[]=new int[1000];for(int i=1;i<=n;i++){a[i]=i;b[i]=i;}int ans=n;int _index=0;int flag=0;while(ans>1){for(int i=1;i<=3;i++){_index=i+flag;if(_index>ans)_index=_index%ans;if(i==3){a[_index]=0;ans--;}}if(_index==a.length){_index=1;}flag=_index;int m=1;for(int i=1;i<=n;i++){if(a[i]!=0){b[m++]=a[i];}else{flag-=1;}}a=b;}System.out.println(a[1]);}}

1192 约瑟夫问题(1)相关推荐

  1. HDU 5643 King's Game 【约瑟夫环】

    题意: 变形的约瑟夫环,最初为每个人编号1到n,第i次删去报号为i的人,然后从它的下一个人开始重新从1开始报号,问最终剩下第几号人? 分析: 首先看一下裸的约瑟夫环问题: 共n个人,从1开始报数,报到 ...

  2. HDU - 5643 King's Game (约瑟夫环变式)

    题目大意: n个人围成一个环坐着,编号从1到n,从第一个人开始报数,第一轮报到1的人出列:第二轮报到2的人出列......第n-1轮报到n-1的人出列,问最后剩下的人的编号是多少 题解: ①首先本题的 ...

  3. python中约瑟夫环程序_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  4. 约瑟夫环问题的两种解法(详解)

    约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...

  5. 用C++实现约瑟夫环的问题

    约瑟夫问题是个有名的问题:N个人围成一圈.从第一个開始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉. 比如N=6,M=5.被杀掉的人的序号为5,4,6.2.3.最后剩下1号. 假定在圈子里前K ...

  6. 约瑟夫死亡游戏算法问题

    代码: #include<iostream> #include<stdlib.h> using namespace std; typedef int datatype; typ ...

  7. 链表问题6——环形单链表的约瑟夫问题(初阶)

    题目 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方 ...

  8. BZOJ 1192 鬼谷子的钱袋 数论

    1192:鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1926  Solved: 1417 题目连接 http://www.lyds ...

  9. P1996 约瑟夫问题

    题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,--依次类推,直到所有的人都出 ...

最新文章

  1. STL的erase()陷阱-迭代器失效总结
  2. c语言做小学生测验程序,[转载]程序设计方法学课程设计--小学生算术四则运算测试程序(C)...
  3. Chrome 插件开发-右键菜单开发实战演示,浏览器页面右键菜单选项设置,插件右键菜单点击插件名跳转主页设置
  4. 17,18_常见函数梯度,激活函数梯度(Sigmoid、Tanh、ReLu)
  5. 深度学习在美图个性化推荐的应用实践
  6. android auto answer,Incoming call auto answer in android 4.0.3
  7. golang 的 tag
  8. 暴风集团:冯鑫因涉嫌对非国家工作人员行贿被公安机关拘留
  9. Web前端第一季(HTML):十四:课时 38 : 309-文本域完成大段文本的输入+课时 39 : 310-表单的属性+课时 40 : 311-文件上传
  10. PHP 使用rabbitmq 入门教程
  11. android全面屏像素密度,手机屏幕分辨率、PPI像素密度科普知识大全
  12. Linkerd、Consul、Istio、Kuma、Traefik、AWS App服务网格全方位对比
  13. Linux可以打开cdr文件吗,CDR是什么格式
  14. plantcare的html打开空白,PlantCARE, a plant cis-acting regulatory element database
  15. 如何识别媒体偏见_超越偏见:为什么我们不能仅仅“修正”面部识别
  16. DWA局部路径规划算法论文阅读:The Dynamic Window Approach to Collision Avoidance。
  17. 中国科学院大学计算机学院夏令营,2019年中国科学院大学生数学夏令营招募通知...
  18. Go 每日一库之 testify
  19. 弃用消息队列!新一代消息系统已成气候!
  20. 国产信创Linux桌面系统比较:软件包格式及软件管理、桌面环境及桌面应用

热门文章

  1. 初探Backbone
  2. Objective-C成员变量声明方式探究
  3. 归档和解档-Archiver
  4. 新手一小时就写出人工智能应用 - 看图识熊
  5. mysql的执行效率_数据库执行效率的对比测试
  6. websocket底层处理粘包_Socket解决粘包问题1
  7. 网站域名解析端口_环境测试必备,无需注册域名,免费动态IP解析一键解析本地网站...
  8. 气象科学与计算机应用论文,面向气象数据的智能分析方法分析-计算机应用技术专业毕业论文.docx...
  9. 计算机网络 --- 数据链路层CSMA/CA协议
  10. mysql5.7 for linux7,大道浮屠诀---mysql5.7.28 for linux安装