Python 求数

2018-09-17 22:51:00 +08:00
 t895

看了李永乐老师的问题,100 个囚犯的,看到有人用 java 实现了,想问下用 python 可以实现吗? 附 java

public static void main(String[] args) { Map<Integer, Integer> people100 = new HashMap<>(); for (int i = 1; i < 101; i++) { people100.put(i, i); }

    recursive(people100);
}

public static void recursive(Map<Integer, Integer> map) {
    Integer counter = 1;
    Map<Integer, Integer> resultMap = new HashMap<>();
    if (map.size() == 1) {
        Set<Integer> integers = map.keySet();
        Iterator<Integer> iterator = integers.iterator();
        for (Integer integer : integers) {
            System.out.println("最终活着的人的编号是: "+map.get(integer));
            return;
        }
    }
    for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
        if (entry.getKey() % 2 == 0) {
            resultMap.put(counter++, entry.getValue());
        }
    }
    recursive(resultMap);
}
1336 次点击
所在节点    Python
3 条回复
Raisu
2018-09-17 23:33:04 +08:00
。。。不如把问题贴出来。。。。
PythonAnswer
2018-09-17 23:43:42 +08:00
哈哈 我也看他视频
xpresslink
2018-09-18 10:46:26 +08:00
>>> def recur(p_list):
◇ ◇ ◇ ◇if len(p_list)==1:
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇print('last is number:', p_list[0])
◇ ◇ ◇ ◇else:
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇recur(p_list[1::2])

>>> prisoners = list(range(1,101))
>>> recur(prisoners)
last is number: 64
>>>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX