daniel 匆匆过客

IT博客 首页 新随笔 联系 聚合 管理
  3 Posts :: 0 Stories :: 7 Comments :: 0 Trackbacks
题目:N个人排成一圈,指定第一个人,去除他,然后跳着一人去除第3人,以次类推,最后
的那一人获胜。给定这N个人和第一个人的位置,你该如何选取位置才会获胜。
解答(见concrete math):
m=3N;
while(m>N)
{
m=m-N+(m-N-1)/2;
}
result=m;
例子:1   2   3   4   5   6   7   8
            9   10      11   12    13 14
                  15      16           17 18
                              19          20                
                              21           22
                                             23
                                             24
posted on 2006-08-03 14:16 danielcheng 阅读(827) 评论(0)  编辑 收藏 引用 所属分类: 练练手
只有注册用户登录后才能发表评论。