62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.*;
public class YueSeFu {
public static void main(String[] args)
{
CycLink t=new CycLink();
t.BaoShu(8, 1, 5);
}
}
class CycLink
{
Child firstChild=null;
Child NowChild=null;
void NewChild(int Sum)
{//注册Sum位学生的信息
while(true)
{
if(Sum<=0)
{
System.out.println("学生人数输入错误,请重新输入:");
continue;
}
System.out.println("请输入第1位学生的名称");
BufferedReader br=null;
BufferedReader bc=null;
firstChild=new Child();
try {
br=new BufferedReader(new InputStreamReader(System.in));
firstChild.data=br.readLine();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
firstChild.nextChild=firstChild;
NowChild=firstChild;
for(int i=2;i<=Sum;i++)
{
System.out.println("请输入第"+i+"位学生的名称");
Child temp=new Child();
try {
bc=new BufferedReader(new InputStreamReader(System.in));
temp.data=bc.readLine();
} catch (Exception e) {
e.printStackTrace();
}
NowChild.nextChild=temp;
if(i==Sum)
{
temp.nextChild=firstChild;
System.out.println("学生信息输入完毕");
try {
bc.close();
} catch (IOException e) {
e.printStackTrace();
}
System.exit(0);
return;
}
NowChild=temp;
}
}
}
void BaoShu(int Sum,int First,int Num)
{
System.out.println("请输入学生总人数");
this.NewChild(Sum);
NowChild=firstChild;
//定位开始的位置
for(int i=1;i<First;i++)
{
NowChild=NowChild.nextChild;
}
//循环数数,直到最后人数剩一个
System.out.print("出圈序列:");
do
{
for(int i=1;i<Num;i++)
NowChild=NowChild.nextChild;
System.out.print(NowChild.data+"\t");
NowChild=NowChild.nextChild.nextChild;
}while(NowChild.nextChild!=NowChild);
System.out.print(NowChild.data);
}
}
class Child
{
String data;
Child nextChild=null;
// Child(String data)
// {
// this.data=data;
// }
}