前两天看到一条新闻:
既然犯人们都开始学编程了,咱也不能闲着啊,还是要不断提高自己的姿势水平。 于是,我参考以前看到的某个数学题,胡乱编了道有关囚徒的编程问题: 在某个虚构的监狱里,关押着 n 个囚犯。此监狱偶尔会有 1 个名额的假释机会,但决定名额的方式比较奇葩: 所有囚犯排成一个圈,以某个人为起点从 1 开始报数,依次递增。所有报到奇数的犯人立刻离开,剩下的人继续往下报数。最后剩下的一个犯人获得假释。 那么,站在哪个位置,才能保证一站到底? 想象一下,你现在是一个有台装了 Python 的电脑且会编程的囚犯,如何实现一个函数 lucky(n),让它返回这个幸运数字。 动手试试,我会在本周日给出解答。 |
|