输入人数,每个人有一个密码,比如说从第一个开始,他的密码是3,则报到第3个人,第三个人出来,第三个人的密码是2,则继续报到第5个人,第五个人出来。。。这程序怎么不对啊???im...
输入人数,每个人有一个密码,比如说从第一个开始,他的密码是3,则报到第3个人,第三个人出来,第三个人的密码是2,则继续报到第5个人,第五个人出来
。。。
这程序怎么不对啊???
import java.util.Scanner;
public class Josephus {
private static class Node {
public int no;// 编号
public int password;//密码
public Node next;// 下一个节点
public Node(int no) {
this.no = no;
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入总人数:");
int totalNum = scanner.nextInt(); //输入人数
for(int i=1;i<=totalNum;i++){
System.out.println("请输入第个"+i+"人的密码:");
new Node(i).password = scanner.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;
// 初始化环形链表结束
System.out.println("以下是出列的顺序:");
while (pointer != pointer.next){
int a = 0;
for (int i=1; i<=totalNum; i++){
a=new Node(i).password;
for (int j=1;j
pointer = pointer.next;
}
}
System.out.println(pointer.next.no);
pointer.next = pointer.next.next;
}
System.out.println(pointer.next.no);
}
}
展开