- 论坛徽章:
- 0
|
哈哈,就是没有变体的约瑟夫问题
原帖由 jronald 于 2006-12-5 00:45 发表
圆圈上顺时针排列着1,2,3,....2000 这2000个数. 从1开始,顺时针隔一个拿走一个(1最先被拿走,下一个是3被拿走). 问最后剩下是哪一个数字.
请大家再看看下面的一道全国计算机等级考试三级C语言上机考题:
设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数, 报数到第m个人, 此人出圈, 再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,给出这n个人的顺序表p。
我相信很多朋友都熟悉这道经典的计算机上机考试题目吧。
于是我对上面的所谓微软面试题改一下,如下:
设有1999个人个人围坐一圈并按顺时针方向从2到2000编号,从第1个人开始进行1到2的报数, 报数到第2个人, 此人出圈, 再从他的下一个人重新开始1到2的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,给出这1999个人的顺序表;并求出最后出圈的人的编号是多少?
最后出圈的人的编号就是楼主问题的答案。
[ 本帖最后由 xiaocongwjb123 于 2006-12-8 15:21 编辑 ] |
|