python 实现N个人,从1数到3,数到3的出局,来回循环,最后剩下一个人

person = []
for i in range(1, 4):
person.append(i)
print 'person:%s' % person
index = 0
while len(person) > 1:
removelist = []
for item in person:
index += 1
if index == 3:
removelist.append(item)
index = 0
print 'removelist:%s' % removelist
for item in removelist:
person.remove(item)

print 'current person list:%s' % person
print 'current removelist:%s' % removelist

print 'left person list:%s' % person

java 版:
import java.util.ArrayList;
import java.util.List;

public class TestShushu {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    List<Integer> list = new ArrayList<Integer>();
    for(int i=1;i<4;i++) {
        list.add(i);
    }
    System.out.println(list);

    int index = 0;
    while(list.size() > 1) {
        List<Integer> removelist = new ArrayList<Integer>();
        for(int i: list) {
            index ++;
            if(index == 3) {
                removelist.add(i);
                //System.out.println(removelist);
                index = 0;
            }
        }
        System.out.println("要删除的数组" + removelist);
        list.removeAll(removelist);
        System.out.println("当前数组元素:" + list);

    }
    System.out.println("最后留下的那个编号:" + list);

}

}

转载于:https://blog.51cto.com/dreamgirl1314/2351212

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值