Functions and recursion - Learn Python 3 - Snakify

# Lesson 8.Functions and recursion

## Problem «The length of the segment» (Easy)

#### Statement

Given four real numbers representing cartesian coordinates: $$\left ( x_{1}, y_{1} \right ), \left ( x_{2}, y_{2} \right )$$. Write a function distance(x1, y1, x2, y2) to compute the distance between the points $$\left ( x_{1}, y_{1} \right )$$ and $$\left ( x_{2}, y_{2} \right )$$. Read four real numbers and print the resulting distance calculated by the function.

The formula for distance between two points can be found at Wolfram.

## Problem «Negative exponent» (Easy)

#### Statement

Given a positive real number $$a$$ and integer $$n$$.

Compute $$a^{n}$$. Write a function power(a, n) to calculate the results using the function and print the result of the expression.

Don't use the same function from the standard library.

## Problem «Uppercase» (Medium)

#### Statement

Write a function capitalize(lower_case_word) that takes the lower case word and returns the word with the first letter capitalized. Eg., print(capitalize('word')) should print the word Word.

Then, given a line of lowercase ASCII words (text separated by a single space), print it with the first letter of each word capitalized using the your own function capitalize().

In Python there is a function ord(character), which returns character code in the ASCII chart, and the function chr(code), which returns the character itself from the ASCII code. For example, ord('a') == 97, chr(97) == 'a'.

## Problem «Exponentiation» (Medium)

#### Statement

Given a positive real number $$a$$ and a non-negative integer $$n$$. Calculate $$a^{n}$$ without using loops, ** operator or the built in function math.pow(). Instead, use recursion and the relation $$a^{n} = a \cdot a^{n-1}$$. Print the result.

Form the function power(a, n).

## Problem «Reverse the sequence» (Hard)

#### Statement

Given a sequence of integers that end with a $$0$$. Print the sequence in reverse order.

Don't use lists or other data structures. Use the force of recursion instead.

## Problem «Fibonacci numbers» (Hard)

#### Statement

Given a non-negative integer $$n$$, print the $$n$$th Fibonacci number. Do this by writing a function fib(n) which takes the non-negative integer $$n$$ and returns the $$n$$th Fibonacci number.

Don't use loops, use the flair of recursion instead. However, you should think about why the recursive method is much slower than using loops.