왜이 오류가 계속 발생하는지 알 수 없습니다! 대기열을 다루는 것은 처음입니다. 나는 해결책이 간단하다는 것을 확신하고 나는 아마 무언가를 놓치고있다. 어떤지도/도움이 크게 감사한다 : 요세푸스 문제를 다음과 같이범위를 벗어나는 배열, Josephus
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 + " ");
}
}
}
이 코드의 원래 프롬프트입니다. 고대로부터의 요세푸스 문제에서 N 국민은 위기에 처해 있으며 인구 감소를위한 다음 전략에 동의합니다. 그들은 원형 (0에서 N-1까지 번호가 매겨진 위치)에서 자신을 배열하고 원 주위를 따라 가며 한 명만 남을 때까지 모든 M 번째 사람을 삭제합니다. 전설에는 요셉 퍼스가 어디에서 탈피되는 것을 피하기 위해 앉았는지에 대한 설명이 있습니다. 커맨드 라인에서 N과 M을 취하고 사람들이 제거되는 순서를 프린트하는 큐 클라이언트 인 Josephus를 작성하십시오. 그러면 Josephus가 서클에 앉을 위치를 표시 할 것입니다.
'for (int i = 0; i
Tom
메인 메서드를 호출 할 때 매개 변수를 전달합니까? 이 예외를 던질 수있는 유일한 명령문은 args 배열을 사용하여 n과 m의 선언입니다. – Dici