java 实现约瑟夫环的实例代码
程序员文章站
2023-12-21 09:43:16
复制代码 代码如下:import java.io.bufferedinputstream;import java.util.arraylist;import java.ut...
复制代码 代码如下:
import java.io.bufferedinputstream;
import java.util.arraylist;
import java.util.list;
import java.util.scanner;
public class josephus {
private static class node{
int no;
node next;
public node(int no){
this.no=no;
}
}
public static void main(string[] args) {
int totalnum,cyclenum;
list<integer> list = new arraylist<integer>();
scanner cin = new scanner(new bufferedinputstream(system.in));
system.out.println("请输入总人数:");
totalnum=cin.nextint();
system.out.println("请输入报数人数:");
cyclenum=cin.nextint();
node header = new node(1);
node pointer = header;
for(int i=2;i<=totalnum;i++){
pointer.next = new node(i);
pointer = pointer.next;
}
pointer.next= header;
pointer=header;
while(pointer != pointer.next){
int i =2;
while(i<cyclenum){
pointer = pointer.next;
i++;
}
//list.add(pointer.next.no);
system.out.println("将序号"+pointer.next.no+"剔除。");
pointer.next=pointer.next.next;
pointer=pointer.next;
}
system.out.println("这是最后一个人:"+pointer.no);
}
}