看到一个很有趣的猜数列题目:
[url]http://www.iteye.com/topic/346772[/url]
原文引用如下:
[quote]
1
11
21
1211
111221
312211
13112221
1113213211
聪明的你,请找出其中的规律,并把下一行数字写出来
用你的人品保证,先别搜,先想想.......
[/quote]
我找了好久没有找到规律,最后还是google了一把 :oops: 原来这个规律这么简单,就是数有几个连续的数字:
[url]http://en.wikipedia.org/wiki/Look-and-say_sequence[/url]
虽然规律简单,上面这篇wikipedia的文章还是有很多有趣的内容。
试试看用ruby来输出这个数列:
越来越觉得ruby在处理字符和正则上有很多很爽的语法糖, :)
[url]http://www.iteye.com/topic/346772[/url]
原文引用如下:
[quote]
1
11
21
1211
111221
312211
13112221
1113213211
聪明的你,请找出其中的规律,并把下一行数字写出来
用你的人品保证,先别搜,先想想.......
[/quote]
我找了好久没有找到规律,最后还是google了一把 :oops: 原来这个规律这么简单,就是数有几个连续的数字:
[url]http://en.wikipedia.org/wiki/Look-and-say_sequence[/url]
虽然规律简单,上面这篇wikipedia的文章还是有很多有趣的内容。
试试看用ruby来输出这个数列:
s = '1'
9.times do
puts s
#用正则表达式查找连续的数字,用匹配的字符长度和该数字替换
s.gsub!(/(\d)\1*/){|match| "#{match.size}#{match[0,1]}"}
end
越来越觉得ruby在处理字符和正则上有很多很爽的语法糖, :)
本文介绍了一个有趣的猜数列题目及其解决方案。通过分析数列的规律,即数出连续相同数字的数量,揭示了Look-and-say数列的奥秘。文章还提供了使用Ruby语言实现该数列的方法。
1964

被折叠的 条评论
为什么被折叠?



