首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组超出范围的异常,Josephus

数组超出范围的异常,Josephus
EN

Stack Overflow用户
提问于 2014-09-04 22:36:14
回答 4查看 636关注 0票数 1

我似乎搞不懂我为什么老是犯这个错误!这是我第一次处理排队问题。我确信解决方案很简单,我可能遗漏了一些基本的东西。如有任何指导/帮助,将不胜感激:

代码语言:javascript
运行
复制
import java.util.LinkedList;
import java.util.Queue;


public class Josephus{
  public static void main(String[] args)
    {
        int n = Integer.parseInt(args[0]),
            m = Integer.parseInt(args[1]);

        Queue<Integer> q = new LinkedList<Integer>();
    for (int i = 0; i < n; i++)
        q.remove(new Integer(i));

    int k = 0;
    while (!q.isEmpty())
    {
        int x = q.remove();

        if (++k % m == 0)
            System.out.print(x + " ");
        else
            q.remove(x);

    System.out.println(x + " ");
    }
    }
}

此代码的原始提示符如下: Josephus问题。在约瑟夫斯问题自古以来,N人处于困境,并同意以下战略,以减少人口。他们把自己安排成一个圆圈(从0到N1的位置),然后绕着圆圈转,消除每一个人,直到只剩下一个人。传说约瑟夫斯找到了避免被淘汰的位置。编写队列客户端Josephus,从命令行中提取N和M,并打印出人被清除的顺序(从而显示Josephus坐在圆圈中的位置)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-04 22:58:01

你用错误的方式称呼你的程序..。如果使用命令行,则必须提供参数:

代码语言:javascript
运行
复制
java Josephus 5 6

否则,如果使用Eclipse (例如),则必须以“运行为”、“运行配置”和“程序参数”字段中添加一些参数。还可以用手动类型的值替换第一行:

代码语言:javascript
运行
复制
int n = 10, m = 5;

我使用(m,n)值的随机集运行它,它运行时没有任何错误(但是,它没有打印任何内容)。

票数 0
EN

Stack Overflow用户

发布于 2014-09-04 22:45:10

你有:

代码语言:javascript
运行
复制
Queue<Integer> q = new LinkedList<Integer>();
for (int i = 0; i < n; i++)
    q.remove(new Integer(i));

为什么要从新创建的(空)队列中删除项?试着把它们加进去!

代码语言:javascript
运行
复制
q.add(new Integer(i));
票数 0
EN

Stack Overflow用户

发布于 2014-09-04 22:46:27

Java认为您试图在while循环下if语句的else语句中调用remove(int index),因为您正在传递一个int。作为一项工作,做您在for循环中所做的事情。

代码语言:javascript
运行
复制
q.remove(new Integer(x));

另外,您需要确保用户在命令行中输入正确的参数。

代码语言:javascript
运行
复制
if (args.length != 2){
    System.out.println("Invalid arguments.");
    return;
}

int n = Integer.parseInt(args[0]),
    m = Integer.parseInt(args[1]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25676019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档