Skip to content

Instantly share code, notes, and snippets.

@timurvafin
Created June 9, 2011 08:34
Show Gist options
  • Save timurvafin/1016336 to your computer and use it in GitHub Desktop.
Save timurvafin/1016336 to your computer and use it in GitHub Desktop.
# класс для работы с рядом
class Series
def initialize
@result = [[1]] # каждый элемент ряда - массив
end
# добавить в ряд элемент
def push( element )
@result.push( element )
end
# получить весь ряд
def get
@result.each { |element| puts element.join('') }
end
# получить следующий элемент в ряде
def addNext
seriesLastElement = @result[@result.size() - 1] # последний элемент ряда
seriesLastElementSize = seriesLastElement.size() # размер последнего элемента в ряде
tempAr = [] # временный массив
iter = 0
prevElement = seriesLastElement[iter] # предыдйщий элемент массива
counter = 1 # счетчик кол-ва повторяющихся цифр
loop do
iter += 1
if iter >= seriesLastElementSize # если конец массива
tempAr += [ counter, prevElement ]
break
else
nextElement = seriesLastElement[iter] # следующий элемент массива
if nextElement != prevElement
tempAr += [ counter, prevElement ]
counter = 1
else
counter += 1
end
end
prevElement = nextElement
end
push( tempAr)
end
end
seriesObj = Series.new()
iterCount = 6 # колиечсво элементов, которые должны получить в ряде
iterCount.times do
seriesObj.addNext
end
seriesObj.get
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment