Рекурсия, которая печатает результаты функции в виде последовательности - PullRequest
0 голосов
/ 02 ноября 2018

Discalimer: в этой функции, которую я не могу использовать для или во время, я могу сделать это только с рекурсией. Он печатает первые цифры последовательности функции term

n -- last pointer of sequence 
term -- function: term(i) 

Мы должны напечатать цифры от 1 до терма (n), начиная с 1 (это то, что усложняет!)

Я также не могу использовать списки! Пример:

print_sequence(5, lambda x:x)
1
2
3
4
5

Что я должен сделать, это:

def print_sequence(n, term):
   if n==0:
           return 
   elif n==1:
           print(term(n))
   else:

И я не знаю, что еще делать! Я перепробовал все.

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете использовать следующую функцию, которая рекурсивно вызывает себя с единицей, меньшей заданной n, пока не достигнет 0, после чего она вызовет term с n и напечатает возвращаемое значение:

def print_sequence(n, term):
    if n == 0:
        return
    print_sequence(n - 1, term)
    print(term(n))

так что:

print_sequence(5, lambda x: x)

выходы:

1
2
3
4
5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...