约瑟夫问题Java代码

2015-05-18 0 230
约瑟夫问题Java代码
public class JosephQuestion {  
  
    public static void main(String[] args) {  
        for (int i = 2; i < 11; i++) {  
            findMonitor(initPersons(i),i);  
        }  
    }  
  
    public static Person initPersons(int num) {  
        Person firstPerson = new Person(1);  
        Person lastPerson = firstPerson;  
        for (int i = 2; i <= num; i++) {  
            Person person = new Person(i);  
            lastPerson.setNextPerson(person);  
            lastPerson = person;  
        }  
        lastPerson.setNextPerson(firstPerson);  
        for (int i = 0; i <num; i++) {  
            System.out.print(firstPerson.getName()+" ");  
            firstPerson = firstPerson.getNextPerson();  
        }  
        System.out.println();  
        return firstPerson;  
    }  
  
    public static void findMonitor(Person person,int size) {  
        Person lastPerson = person;  
        int counter = 1;  
        while(size>1){  
            lastPerson = person;  
            person = person.getNextPerson();  
            counter++;  
            if(counter==3){  
                lastPerson.setNextPerson(person.getNextPerson());  
                person =lastPerson.getNextPerson();  
                counter=1;  
                size--;  
            }  
        }  
        System.out.println(person.getName());  
    }  
}  

遇见资源网 java 约瑟夫问题Java代码 http://www.ox520.com/9349.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务