diff options
author | Zhongheng Liu <z.liu@outlook.com.gr> | 2025-01-10 22:35:02 +0200 |
---|---|---|
committer | Zhongheng Liu <z.liu@outlook.com.gr> | 2025-01-10 22:35:02 +0200 |
commit | 3681fd8150f0e13a19cbc0cf17582c5dceaab7eb (patch) | |
tree | 754d452c73419cd5a7e2f82f291f5de59f5dfa0c | |
parent | e77a282f5bfa6e6d387943cf8bf2afb49c4769f6 (diff) | |
download | cs-y13-3681fd8150f0e13a19cbc0cf17582c5dceaab7eb.tar.gz cs-y13-3681fd8150f0e13a19cbc0cf17582c5dceaab7eb.tar.bz2 cs-y13-3681fd8150f0e13a19cbc0cf17582c5dceaab7eb.zip |
chore: dos2unix on file
-rw-r--r-- | recursion/recursion.py | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/recursion/recursion.py b/recursion/recursion.py index eec0fd1..dd51531 100644 --- a/recursion/recursion.py +++ b/recursion/recursion.py @@ -1,50 +1,50 @@ -def fact(n: int): return n * fact(n-1) if n != 0 else 1
-
-def compound(p: float, r: float, y: int) -> float:
- 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)
-
-def draw_underline(l: int):
- return '-'*l
-
-def test():
- range_end = 15
- print(f"Printing series of factorials from 1 to {range_end}\n{draw_underline(20)}")
- for i in range(1, range_end):
- print(fact(i), end=", " if i < range_end-1 else "\n")
- fib_until = 15
- print(f"\n\nPrinting fibonacci sequence to {fib_until}\n{draw_underline(20)}")
- print_fib(0, 1, fib_until)
- print(fib_nth(5))
- print(compound(36800*4, 1.06, 10) / (43129-3170*12))
-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)
-
-if __name__ == "__main__":
- test()
+def fact(n: int): return n * fact(n-1) if n != 0 else 1 + +def compound(p: float, r: float, y: int) -> float: + 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) + +def draw_underline(l: int): + return '-'*l + +def test(): + range_end = 15 + print(f"Printing series of factorials from 1 to {range_end}\n{draw_underline(20)}") + for i in range(1, range_end): + print(fact(i), end=", " if i < range_end-1 else "\n") + fib_until = 15 + print(f"\n\nPrinting fibonacci sequence to {fib_until}\n{draw_underline(20)}") + print_fib(0, 1, fib_until) + print(fib_nth(5)) + print(compound(36800*4, 1.06, 10) / (43129-3170*12)) +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) + +if __name__ == "__main__": + test() |