首页 > 试题广场 >

500 张纸牌整齐排成一排,按顺序编号 1、2、3、4、..

[单选题]
500 张纸牌整齐排成一排,按顺序编号 1、2、3、4、...、499、500,第一次拿走所有奇数位置上的纸牌,第二次再拿走剩下纸牌中的所有奇数位置上的纸牌,以此类推操作下去,问最后剩下的纸牌的编号是多少 ?
  • 128
  • 250
  • 256
  • 500
推荐
C,一共拿8次,最后剩下一张牌,第一次拿走的编号除以1商为奇数,第二次拿走的编号除以2商为奇数,第三次拿走的除以4商为奇数,,,,第八次拿走的编号除以2的7次幂(128)商为奇数,最后剩下的一个数除以(1, 2, 4, 128)商都是偶数,256满足
编辑于 2015-02-04 15:56:04 回复(0)
把每一个球的编号变成二进制,则第一次拿走的是个位为1的球,第二次拿走的是右数第二位为1的球…500<511(11111111),所以最后剩下的二进制码为10000000,即2^7=128
发表于 2016-09-18 19:40:49 回复(8)
第一次剩下是2的倍数 第二次剩下的是4的倍数 最后剩下128和256 拿走128 剩下256
发表于 2015-12-11 09:22:42 回复(0)
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num = scanner.nextInt();
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            list.add(i + 1);
        }
        System.out.println("最后剩下的数是:"+removeOddNum(list));
    }

    private static int removeOddNum(ArrayList<Integer> list) {
        ArrayList<Integer> arrayList;
        while (true) {
            arrayList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                if (i % 2 != 0) {
                    arrayList.add(list.get(i));
                }
            }
            list.clear();
            list.addAll(arrayList);
            if (list.size() == 1) {
                break;
            }
        }
        return list.get(0);
    }
测试结果:
请输入一个整数:
500
最后剩下的数是:256
发表于 2019-09-06 02:59:10 回复(0)
考虑一下二进制思想,9个bit位够存500了,在所有二进制表示中,第一次拿走第一位都是1的,第二次拿走第二位都是1的······以此类推,显而易见只有1 0000 0000能抗到最后。
发表于 2017-08-09 17:02:03 回复(0)
第一次剩下是2的倍数 第二次剩下的是4的倍数 最后剩下128和256 拿走128 剩下256
发表于 2016-05-04 13:23:26 回复(0)
2的指数值乘以计数均是要拿掉的数字,但是指数应当小于256,因为256乘以大于1的奇数会大于500
发表于 2016-04-04 22:24:52 回复(0)
和圆桌射击游戏很像C
发表于 2019-08-28 11:13:12 回复(0)
典型的约瑟夫环问题嗷
发表于 2019-06-10 00:33:32 回复(0)
每次隔一个减半,是谁一直不变,它就是2^n
发表于 2019-05-28 16:00:44 回复(0)
剩下的一次是2^n的倍数,最后剩下的是256的倍数
发表于 2019-03-10 10:54:17 回复(0)
我是一步步推的,汗颜啊
发表于 2017-01-18 19:06:46 回复(0)
C 2的指数上去
发表于 2014-10-15 09:39:25 回复(0)
C
发表于 2014-10-15 09:23:03 回复(0)