patternpythonMinor
Inverse cascade challenge - Recursion
Viewed 0 times
inversecascaderecursionchallenge
Problem
Print the following pattern, when you invoke
Solution:
Using a recursion approach, how can I improve this code without using higher order functions?
Note: No data models have to be used.
inverse_cascade(1234)1
12
123
1234
123
12
1Solution:
def inverse_cascade(n):
def grow(n):
if n < 10:
print(n)
else:
grow(n // 10)
print(n)
def shrink(n):
if n < 10:
print(n)
else:
print(n)
shrink(n // 10)
grow(n // 10)
print(n)
shrink(n // 10)Using a recursion approach, how can I improve this code without using higher order functions?
Note: No data models have to be used.
Solution
Separate
For example like this:
grow and shrink functions are not necessary. Instead you can have a single function that prints, recurses and prints again the same value when the recursion returns.For example like this:
def inverse_cascade(n, digits=1):
n = str(n)
print(n[:digits])
if digits < len(n):
inverse_cascade(n, digits+1)
print(n[:digits])Code Snippets
def inverse_cascade(n, digits=1):
n = str(n)
print(n[:digits])
if digits < len(n):
inverse_cascade(n, digits+1)
print(n[:digits])Context
StackExchange Code Review Q#95538, answer score: 4
Revisions (0)
No revisions yet.