`
hell_liul
  • 浏览: 41291 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

猴子报数问题(java实现)

    博客分类:
  • java
阅读更多
//【问题描述-猴子选大王】

/*M只猴子要选大王,选举办法如下:所有猴子按1-M编号围坐一圈,从1号开始按顺序1,2,,,K报数,/凡报到K的猴子退出到圈外,如此循环报数,直到圈内只剩下一只猴子时,这只猴子就是大王.用java实现,并输出最后留下的是谁??*/

下例用list存储姓名,看谁剩到最后一个

import java.util.ArrayList;
import java.util.List;

public class Helloworld {
public static void main(String args[]) {
  List list = new ArrayList();
  list.add("1");
  list.add("2");
  list.add("3");
  list.add("4");
  list.add("5");
  list.add("6");
  list.add("7");
  // System.out.println(list);
  Helloworld test = new Helloworld();
  test.aa(list, 0, 4);
}

/*num为数到几报数*/

public void aa(List list, int mod, int num) {
  int count = 0;
  int size = list.size();

  for (int i = 0; i < size; i++) {
   if (list.size() == 1) {
    System.out.println(list);
    return;
   }
   if ((i + 1 + mod) % num == 0) {

//关键,因为list的size是变的
    list.remove(i - count);
    count++;
   }
   if (i == size - 1) {

//关键
    mod = size % num + mod;
    this.aa(list, mod, num);
   }
  }
}
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hell_liul/archive/2009/07/16/4352978.aspx
分享到:
评论

相关推荐

    基于java数据结构链表写的猴子选大王

    然而,如题目描述所述,当前的实现存在一个问题:当输入的猴子数量为1且报数为1时,程序会出错。这是因为在这种情况下,移除操作会使头节点失效,导致链表断裂。为了解决这个问题,我们需要对这个特殊情况做出判断:...

    java猴子选王

    本篇文章将通过分析一个具体的Java实现案例来探讨该问题的核心知识点。 #### 二、程序功能概述 根据题目描述,“猴子选王”程序的主要功能是模拟一群猴子围成一圈进行淘汰赛的过程,最终选出“猴王”。具体规则...

    猴子选大王

    一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。

    java算法 JOSEPH约瑟夫问题穷举算法解决 netbeans

    这个问题的基本设定是,有一群人(或猴子,在此例中)围成一个圈,按照顺时针方向从某个人开始报数,数到特定数值的人将被排除,然后从下一个人继续报数,直到只剩下最后一个人为止,这个人被称为“大王”或者幸存者...

    n只猴子选大王

    n只猴子选大王,排成一圈,依次从1报数,报到3者退出,其余的猴子继续从1报数,直到剩下最后一只,即为大王。 ,史上最简单算法!

    数据结构课程设计报告(猴子选大王).docx

    - 实现方式:使用循环单链表来存储和操作猴子,通过报数淘汰猴子,直到链表只剩下一个节点。 在正文部分,问题被分析为约瑟夫环问题的特殊情况,适合用链表动态分配内存。设计了一个空链表,添加n个节点形成循环...

    数据结构课程设计报告(猴子选大王).doc

    - 编写核心算法,循环报数并删除编号符合规则的猴子,直至剩下最后一只,即为大王。 5. 程序设计思想: - 分析问题,将“猴子选大王”问题转化为约瑟夫环问题的特例,利用循环链表的动态性和循环特性。 - 总体...

    java 经典习题.doc

    37. **环形圈内最后留下的数**:程序37通过模拟圆圈中报数游戏找出最后剩下的数。 38. **字符串长度计算**:程序38要求输入字符串并输出其长度。 39. **奇数和偶数数列求和**:程序39涉及根据输入的数的奇偶性进行...

    20只猴子选大王

    n只猴子选大王,排成一圈,依次从1报数,报到3者退出,其余的猴子继续从1报数,直到剩下最后一只,即为大王。 19行代码

    java编程题

    这些题目涵盖了Java编程的基础知识,包括数学...37. **报数游戏**:模拟报数过程,用数组记录剩余玩家。 这些题目旨在帮助Java初学者熟悉基本语法、控制流和数据结构,通过解决这些问题,可以提升编程能力和逻辑思维。

    java经典编程题

    17.有n个人围成一个圈子,从第一个人开始报数,报到3的退下,问最后留下的是编号为几的人; 18.字符串排序; 19.海滩上有一堆桃子,五只猴子来分,第一只猴子均分成5份,多出一个,扔进海里,自己拿走一份,第二三四...

    最新JAVA编程题全集_50题及答案

    import java.util.ArrayList; import java.util.List; public class NumTest { public static void main(String[] args) { String s="ABCD";//原字符串 List&lt;String&gt; result = list(s, "");//列出字符的...

Global site tag (gtag.js) - Google Analytics