现在主要在知乎,地址:https://www.zhihu.com/people/qqrrm 老的文章在:http://blog.csdn.net/pyp

一道好玩的题(ruby)

上一篇 / 下一篇  2011-12-26 17:51:36 / 个人分类:ruby

原文在http://www.cnblogs.com/BrainDeveloper/archive/2011/12/24/2300279.html

有N个数,编号1到n。按照以下规则进行删除数,求最后剩下的那个数。【1<= n <= 1000000000】

规则:

1 . 如果当前序列的个数大于1,则删除所有序列中第平方数的位置的数。

2. 将进行1操作剩下的数,重新排在一起,重复操作1,直接当前序列数为1个数时,这个数就是结果。


#coding:utf-8     

NUM =99999       #最大值

a = (1..NUM).to_a

def value(arr)      #去除平方位置的数
  for i in 1..Math.sqrt(NUM)
    arr[i*i-1] = nil
  end
  return arr.compact!
end

n = Time.now
until a.length == 1  #算是递归吧
  value(a)  
end
p Time.new-n

p a




TAG: Ruby ruby

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 70075
  • 日志数: 47
  • 图片数: 2
  • 文件数: 2
  • 建立时间: 2006-11-24
  • 更新时间: 2023-01-29

RSS订阅

Open Toolbar