aboutsummaryrefslogtreecommitdiff
path: root/recursion/recursion.py
blob: 11678b3bde185212456252f25c9ab090abca35ee (plain)
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
def fact(n: int): return n * fact(n-1) if n != 0 else 1
def compound(p: int, r: float, y: int): return p if y == 0 else compound(p*r, r, y-1)
def print_fib(a, b, l):
    print(a)
    print(b)
    print_next_fib(a, b, l-3)

def print_next_fib(a: int, b: int, l: int):
    if l == 0: 
        print(a+b)
        return
    print(a+b)
    return print_next_fib(b, a+b, l-1)
def fib_nth(n: int):
    if n == 1:
        return 0
    if n == 2:
        return 1
    return fib_nth(n-1) + fib_nth(n-2)
for i in range(1, 10):
    print(fact(i))
print_fib(0, 1, 10)
wage = 3000
print(fib_nth(5))
def payback(tuition: int, rate: int, salary: int):
    years = 0
    remaining = tuition * 4

    while remaining > 0:
        remaining -= salary
        years += 1
        remaining *= rate
        print(f"Year {years}: remaining: {remaining}")
    print(years)
#payback(36800, 1.06, (43129-3170*12))

print(compound(36800*4, 1.06, 10) / (43129-3170*12))