看到一个很有趣的猜数列题目:
[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在处理字符和正则上有很多很爽的语法糖, :)