Помощь в решении задачи

endermeg

Новичок
Пользователь
Май 2, 2020
4
0
1
Доброго времени суток форумчане.
Решил задачу :
Напишите рекурсивную функцию f1, которая печатает следующий текст:
1
22
333
.....
nn....n

Python:
def f1(n):
    if n == 0:
        return
    else:
        f1(n - 1)
        print(str(n) * n)

Сломал всю голову по решению следующей задачи:
Напишите рекурсивную функцию f2, которая печатает следующий текст:
11....1
22....2
.......
nn....n
Помогите пожалуйста.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Если функция f2 может принимать 2 аргумента, то вот пример:
Python:
def f2(n, m):
    if n == 0:
        return
    else:
        f2(n - 1, m)
        print(str(n) * m)
       
f2(5, 5)
Если нужно чтобы функция f2 вызывалась только с одним аргументом, то второму можно установить значение по умолчанию:
Python:
def f2(n, m=0):
    if n == 0:
        return
    else:
        f2(n - 1, m + 1)
        print(str(n) * (m + n))
        
f2(5)
 
Последнее редактирование:

endermeg

Новичок
Пользователь
Май 2, 2020
4
0
1
Если функция f2 может принимать 2 аргумента, то вот пример:
Python:
def f2(n, m):
    if n == 0:
        return
    else:
        f2(n - 1, m)
        print(str(n) * m)
      
f2(5, 5)
Если нужно чтобы функция f2 вызывалась только с одним аргументом, то второму можно установить значение по умолчанию:
Python:
def f2(n, m=0):
    if n == 0:
        return
    else:
        f2(n - 1, m + 1)
        print(str(n) * (m + n))
       
f2(5)

Спасибо огромное, всё работает идеально.
 

Форум IT Специалистов