腾讯公司的一道笔试题,题目大致意思如类注释:
Java代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
*
* 列表中有100个人,从第1个开始数数,当数到7或者7的倍数时,
* 则从列表中将该对象移除,数到末尾后又开始从第一个循环开始数
* 直到删除至最后一个人
* @author wuhaiming
*
*/
public class CountExit
{
/**
* @param args
*/
public static void main(String[] args)
{
/*
* 添加100个人到列表中
*/
List<Person> persons = new ArrayList<Person>();
for(int i = 0; i < 100; i++)
{
Person person = new Person();
person.setId(i);
persons.add(person);
}
print(persons);
//用于计数,数到7或者7的倍数时则退出
int count = 0;
//列表中的索引
int index = 0;
//列表中的所有对象
int personSize = persons.size();
while(personSize > 1)
{
count++;
if(count % 7 == 0)
{
persons.remove(index);
personSize--;
}
else
{
index++;
}
if(index == persons.size())
{
index = 0;
}
}
print(persons);
}
/**
* 将列表中所有的数据打印出来
* @param persons
*/
public static void print(List<Person> persons)
{
for (Iterator<Person> iter = persons.iterator(); iter.hasNext();)
{
Person per = iter.next();
System.out.print(per);
}
System.out.println();
}
}
/**
*
* Person对象,有个唯一的ID标识
* @author wuhaiming
*
*/
class Person
{
private int id = 0;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
@Override
public String toString()
{
return id + " ";
}
}
Java代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
*
* 列表中有100个人,从第1个开始数数,当数到7或者7的倍数时,
* 则从列表中将该对象移除,数到末尾后又开始从第一个循环开始数
* 直到删除至最后一个人
* @author wuhaiming
*
*/
public class CountExit
{
/**
* @param args
*/
public static void main(String[] args)
{
/*
* 添加100个人到列表中
*/
List<Person> persons = new ArrayList<Person>();
for(int i = 0; i < 100; i++)
{
Person person = new Person();
person.setId(i);
persons.add(person);
}
print(persons);
//用于计数,数到7或者7的倍数时则退出
int count = 0;
//列表中的索引
int index = 0;
//列表中的所有对象
int personSize = persons.size();
while(personSize > 1)
{
count++;
if(count % 7 == 0)
{
persons.remove(index);
personSize--;
}
else
{
index++;
}
if(index == persons.size())
{
index = 0;
}
}
print(persons);
}
/**
* 将列表中所有的数据打印出来
* @param persons
*/
public static void print(List<Person> persons)
{
for (Iterator<Person> iter = persons.iterator(); iter.hasNext();)
{
Person per = iter.next();
System.out.print(per);
}
System.out.println();
}
}
/**
*
* Person对象,有个唯一的ID标识
* @author wuhaiming
*
*/
class Person
{
private int id = 0;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
@Override
public String toString()
{
return id + " ";
}
}