-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvisualRecursion.py
More file actions
86 lines (78 loc) · 1.8 KB
/
Copy pathvisualRecursion.py
File metadata and controls
86 lines (78 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import math
#creates a sliding window structure, shows in and out
def recWindow(n,max):
print()
for i in range(n):
print(' ',end = '')
for i in range(max-n):
print("*",end='')
if n == max:#base case
print()
return
else:
recWindow(n+1,max)
for i in range(max - n):
print("*", end='')
for i in range(n):
print(' ',end = '')
print()
#creates a diamond structure, shows in and out
def recDiamond(n,max):
for i in range(math.ceil((max-n)/2)):
print(' ',end = '')
for i in range(n):
print("*",end = '')
if(n>=max):#base case
print()
return
else:
print()
recDiamond(n+2,max)
for i in range(math.ceil((max-n)/2)):
print(' ',end = '')
for i in range(n):
print("*",end = '')
print()
#makes a steplike structure in and out
def recSteps(n):
for i in range (n):
print('*',end='')
print()
if(n <= 0):#base case
print()
return
recSteps(n-1)
for i in range (n):
print('*',end='')
print()
#makes a pyramid
def recPyr(c,max):
for i in range(math.ceil((max-c)/2)):
print(' ',end='')
for i in range(c):
print('*',end='')
print()
if(c>=max):#base case
return
else:
recPyr(c+2,max)
#demonstrates a mathematical recursion, each number is the previous number doubled
def recMath(n,level):
if(n>=33):
print("level:",level,"n: ",n)
return n
print("level:",level,"n: ",n)
recMath(n+n,level+1)
print("level:", level, "n: ", n)
return n
print()
recWindow(0,5)
print()
recDiamond(1,10)
print()
recSteps(10)
print()
recPyr(1,10)
print()
recMath(1,0)
print()