def reverseNumber(x, n=0): s = list(str(x)) if type(x) == int else x if n*2 >= len(s): return int(''.join(s)) else: s[n],s[len(s)-n-1] = s[len(s)-n-1],s[n] return reverseNumber(s, n+1) # Сложность O(n), где n - количество символов в строковом представлении x # либо, если n воспринимать как число, O(logn) print(reverseNumber(12345)) def printBelow(x, current=1): if x > 0 and current <= x: print(current) printBelow(x, current+1) # Сложность O(n), если считать сложность перевода числа в строку константной printBelow(10) def checkBy2(x): if x == 1: print("Да") elif x % 2 != 0 or x < 1: print("Нет") else: checkBy2(x//2) # Сложность O(logn), если не используется длинная арифметика, т.к. в худшем случае # для увеличения рекурсивных вызовов на n нужно увеличить число в 2^n раз checkBy2(31) checkBy2(32)