Как написать программу обратного отсчета с помощью рекурсии?

Рейтинг: 0Ответов: 1Опубликовано: 18.10.2014

Напишите программу, которая будет делать обратный отсчет от числа, которое вы ввели, к нулю с помощью цикла, а затем с помощью рекурсии.

С помощью цикла:

i=gets.chop.to_i
loop do
i-=1
puts "#{i}"
break if i==0
end

или

i=gets.chop.to_i
while i>0
  i-=1
  puts "#{i}"
end

С рекурсией не получается. (

Ответы

▲ 2

Чтобы написать рекурсивную функцию, достаточно реализовать самый простой случай и вызвать саму функцию для реализации всего остального:

def countdown(n)
  if n > 0
    puts n
    countdown(n - 1)
  end
end

Пример использования:

countdown(gets.to_i)

Ещё одна итеративная версия:

def countdown_iter(n)
  n.downto(1) { |i| puts i }
end