Josephus.java:
public class Josephus{
public Josephus(){
m_num=8;
m_mod=4;
m_startpos=1;
m_children=new int[8];
for(int i=0;i
m_children[i]=i+1;
}
}
public Josephus(int n,int m,int s){
m_num=n;
m_mod=m;
m_startpos=s;
m_children=new int[n];
for(int i=0;i
m_children[i]=i+1;
}
}
public void WorkOut(){
int s1=m_startpos-1;
for(int i=m_num;i>1;i--){
s1=(s1+m_mod-1)%i;
int tmp=m_children[s1];
for(int j=s1;j
m_children[j]=m_children[j+1];
}
m_children[i-1]=tmp;
}
}
public void OutPut(){
System.out.println("The result is:");
for(int i=m_num-1;i>=0;i--){
System.out.println(m_children[i]);
}
}
int m_children[];
int m_num;
int m_mod;
int m_startpos;
}
TextJosephus.java:
import java.util.Scanner;
public class TextJosephus{
public static void main(String [] args){
Scanner reader=new Scanner(System.in);
System.out.println("please input n m s:");
int n=reader.nextInt();
int m=reader.nextInt();
int s=reader.nextInt();
Josephus jp=new Josephus(n,m,s);
jp.WorkOut();
jp.OutPut();
}
}