@extends('template')
@section('title')
Lab 11: Part 2: Non-fruitful Recursion
@stop
@section('content')
# Lab 11: Part 2: Non-fruitful Recursion
Create a new file called `lab11.py`. All the functions you write today will be **recursive**{{--, and in this section,--}} and **non-fruitful**. Your functions will print, but not return values. {{--Later on today, you'll move on to **fruitful** recursive functions.--}}
## Task 0. divideBy3
Partner A
Write a function called `divideBy3` that will take a number and
divide the number by 3, printing the number unless it is less than or equal to 1.
**This function must be recursive**.
```py
>>> divideBy3(3)
3
>>> divideBy3(1)
>>> divideBy3(0)
>>> divideBy3(-4)
>>> divideBy3(15)
15
5.0
1.6666666666666667
>>> divideBy3(100)
100
33.333333333333336
11.111111111111112
3.703703703703704
1.234567901234568
```
## Task 1. Recursive triangles
Partner B
In this task, you will create some recursive patterns using asterisks.
Write a Python function called `asteriskTriangle` that will take a `length` parameter and draw a triangle pattern composed of lines of asterisks that get successively smaller with each line.
**This function must be recursive**.
Example invocations of `asteriskTriangle`:
```py
>>> asteriskTriangle(1)
*
>>> asteriskTriangle(3)
***
**
*
>>> asteriskTriangle(5)
*****
****
***
**
*
>>> asteriskTriangle(15)
***************
**************
*************
************
***********
**********
*********
********
*******
******
*****
****
***
**
*
>>> asteriskTriangle(0)
>>>
```
## Task 2. switch
Partner B
Write a function called `switch` that will take a length parameter and draw a pattern like the examples below. The examples below always use asterisks and dashes:`*` and `-`. You can change those if you like, or, even better, add parameters so the user can specify their own symbols. **This function must be recursive**.
```py
>>> switch(0)
>>> switch(1)
>>> switch (2)
**
>>> switch(3)
***---
**
---***
>>> switch(6)
******------
*****-----
****----
***---
**
---***
----****
-----*****
------******
>>> switch(8)
********--------
*******-------
******------
*****-----
****----
***---
**
---***
----****
-----*****
------******
-------*******
--------********
```
@include('/labs/lab11_recursion/_toc')
@stop