Cvičení na doplnění kódu, 15. března

Většinu zadání psal robot, ale napsal to hezky.

1. Ciferný součet

Výsledkem funkce je součet všech číslic v desítkovém zápisu zadaného čísla.

def sum_of_digits(n):
    return n if ____________ else n % 10 + sum_of_digits(n // __________)

2. Fibonacci

Výsledkem funkce je n-té číslo Fibonacciho posloupnosti, která je 0 a 1 pro n=0 a n=1, a pro větší n je součtem dvou předchozích čísel.

def fibonacci(n):
    return n if ____________ else fibonacci(____________) + fibonacci(____________)

3. Faktoriál

Výsledkem funkce je součin všech čísel od 1 do n včetně, anebo 1, když zadané číslo je 0.

def factorial(n):
    return 1 if ____________ else n * factorial(____________)

4. Mocnina

Výsledkem funkce je base umocněné na exp.

def power(base, exp):
    return 1 if ____________ else base * power(____________ , ____________)

5. Binární vyhledávání

Funkce hledá v seřazeném seznamu arr prvek target a vrací jeho index, nebo -1, pokud prvek v seznamu není.

def binary_search(arr, target, low, high):
    if low > high:
        return -1
    mid = (low + high) // 2
    if arr[mid] == target:
        return ____________
    elif arr[mid] < target:
        return binary_search(arr, target, ____________ , ____________)
    else:
        return binary_search(arr, target, ____________ , ____________)