小孩排队数数出队列的问题,初次接触是在学习C语言的时候,当时是看着答案做的,倒是明白,可是就是觉得特别繁琐,学习了Java,对于链表表示记忆深刻,闲来无事写了一下,感觉很好理解。
@Test
public void out()
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();//n表示孩子的总数
int k=sc.nextInt();//数到k的出列
LinkedList<Integer>list=new LinkedList<Integer>();
for(int i=1;i<=n;i++)//链表中添加的是从1到n的数字
list.add(i);
int count=1;//数数
int current=0;//在链表中的位置
while(list.size()>0)
{
//如果数到k
if(count==k)
{
System.out.print(list.get(current)+" ");//输出内容
list.remove(current);//出列
count=0;
current--;
}
count++;
current++;
if(current==list.size())
current=0;
}
}