JAVA Josephus(数组实现)

来源:互联网 发布:无锡恒云太java 编辑:程序博客网 时间:2024/05/16 09:15

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_num;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_num;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<i-1;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();}}


原创粉丝点击