zp_bj02

腾讯公司的一道笔试题,题目大致意思如类注释:

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 +  "   ";  
    }  
}  

转载于:https://www.cnblogs.com/alamps/archive/2012/10/24/2737920.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值