圆桌问题

题目

圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。

#输入

多组数据,每组数据输入:好人和坏人的人数n(<=32767)、步长m(<=32767);

输出

对于每一组数据,输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50个字母为一行,不允许出现空白字符。相邻数据间留有一空行。

思路

既然要找到所有坏人的位置,那我们可以用数组循环来找到,找到那个位置,我们就标记,如果在找的过程中遇到了被标记的位置,那我们就不记这次,直接跳到下一个位置,如果找的位置超过了总的位置,我们就返回最开始的位置继续找

import java.util.*;
public class Main {public static void main(String[] args) {int count=0;List<StringBuffer> list=new ArrayList();Scanner in=new Scanner(System.in);while(in.hasNext()) {int T=in.nextInt();int step=in.nextInt();int flag=0;String[] a=new String[2*T+5];for(int i=0;i<T;i++) {//tem表示的是下标int tem=flag+step-1; //flag表示上次坏人的下标for(int j=flag;j<=tem;j++) {  //j是数组下标if(a[j]!=null) { //表示该位置有之前标记的,不予算tem++;}if(j==tem) { //如果该位置等于目标位置,则标记a[j]="B";flag=j+1;}if(j==2*T-1) {tem=tem-2*T; j=-1;flag=0;}}}            for(int i=0;i<2*T;i++) {if(a[i]==null) {a[i]="G";}if((i+1)%50==0) {System.out.println(a[i]);}else {System.out.print(a[i]);}}System.out.println();System.out.println();}}
}

java实现圆桌问题相关推荐

  1. Java技术交流群[微信](Talking Coding)

    怀揣梦想加入不少的技术群(微信.qq.论坛社区),本想着长点本事,时间一长,技术没学到,表情包到是搜藏了不少. 鉴于此,个人自己建立了一个微信群- Java技术圆桌会 -专注于技术学习.探讨.研究.分 ...

  2. 验证码过期(小功能)

    作用:模拟获取验证码,10s后,重新获取.未过期前不可重复获取: <%@ page language="java" import="java.util.*" ...

  3. java多线程--哲学家进餐问题(操作系统)(哲学家进餐问题:5个哲学家共用一张圆桌,分别坐在周围的5张椅子上,在圆桌上有5个碗和5只筷子(注意是5只筷子,不是5双),碗和筷子交替排列。)

    哲学家进餐问题:5个哲学家共用一张圆桌,分别坐在周围的5张椅子上,在圆桌上有5个碗和5只筷子(注意是5只筷子,不是5双),碗和筷子交替排列.他们的生活方式是交替地进行思考(thinking)和进餐(e ...

  4. java 圆桌_约瑟夫问题求解释(圆桌问题)Java

    publicclassJosephus{publicstaticvoidmain(Stringargs[]){if(args.length!=2)//处理参数数目不正确情况{System.out.pr ...

  5. 从Java到Spring为何独得青睐Spring Summit 2017不可不知的那些事儿

    作为最受欢迎的编程语言之一,Java诞生这二十多年以来拥有着数量众多的铁杆粉丝.虽然新的编程语言层出不穷,但是很多人对Java的钟爱却丝毫未变.而在Java为数众多的框架中,Spring框架独得很多人 ...

  6. java同步互斥功能检测_猿考研之操作系统篇三(进程同步,管程,死锁)

    进程同步 进程具有异步性的特征.异步性是指,各并发执行的进程以各自独立的.不可预知的速度向前推进. 同步机制应遵循的准则 空闲让进:其他进程均不处于临界区: 忙则等待:已有进程处于其临界区: 有限等待 ...

  7. java 面试心得总结-BAT、网易

    声明: 文章转自http://www.nowcoder.com/discuss/3043?type=2&order=0&pos=5&page=2 之前实习的时候就想着写一篇面经 ...

  8. 2016蘑菇街编程题:搬圆桌

    题目描述 现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1).每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转.问最少需要移动几步. 输入描述: 一行 ...

  9. java多线程多态_Java学习之多线程

    多线程: (一)进程与线程 进程特点 并发与并行的区别: 多线程编程的好处: (二)多线程的建立 1,通过继承Thread类,代码如下: class MyThread extendsThread {p ...

最新文章

  1. 最佳实践系列:前端代码标准和最佳实践
  2. POJ9384 迷宫(基金会BFS)
  3. python3.4编程_求教python3.4的编程问题
  4. /bin/bash^M: bad interpreter: 没有那个文件或目录
  5. 织梦DEDECMS网站留言板提交时验证码错误返回空白页的解决办法
  6. mysql show
  7. 这里有一个让你变成技术大牛的机会
  8. python中datetime默认的1990年改为_如何更改numpy datetime64中的年份值?
  9. 管家婆婆分销ERP V3 打印报错
  10. C/C++预处理过程详细梳理(预处理步骤+宏定义#define/#include+inline函数+宏展开顺序+条件预处理+其它预处理定义)
  11. 游戏 蒸汽之城开发经验
  12. Excle 取前几位数、中间几位数、后几位数的方法
  13. 计算机多核启动原理,多核cpu工作原理 不进来看看?
  14. 3.模板模式_1:什么是模板模式???什么情况适合用模板模式???模板模式如何实现???
  15. GPL amp; LGPL
  16. java的聚合_java中聚合是什么
  17. c语言停车场的收费管理系统,c语言停车场管理系统
  18. thinkphp6对接阿里云短信服务完成定时发送短信功能
  19. 与DC漫画招牌角色“蝙蝠侠”结缘,NFT向前再迈进一步
  20. 李宏毅机器学习笔记(一)

热门文章

  1. 重庆永川实现停车自由 百度地图助力打造西部智能交通新样板
  2. 【原创】CDMA手机产业链及厂商介绍
  3. js使用canvas 绘画 画板 签名墙
  4. 剩余内存无法满足申请时,系统会怎么做?
  5. 让Away3D伴你360°全景漫游
  6. ARM64(aarch64)下安装tensorflow
  7. php连接tidb,TiDB常见问题
  8. java爬取并下载US六仔搭建酷狗TOP500歌曲
  9. iso科大讯飞广告dsk
  10. 华南师范宋宇老师课堂对话论文翻译