Professional Documents
Culture Documents
CP 08 Loops1
CP 08 Loops1
Repetition: Loops
Swaroop Joshi
2023
Control flow
//…
✤ The order in which statements in a bool lunch_time = ...;
bool bed_time = ...;
program are executed is called the
flow of control or control flow if (lunch_time) {
eat();
} else if (bed_time) {
✤ So far we have only seen sequential sleep();
and conditional execution. }
Control flow
//…
✤ The order in which statements in a bool lunch_time = ...;
bool bed_time = ...;
program are executed is called the
flow of control or control flow if (lunch_time) {
eat();
} else if (bed_time) {
✤ So far we have only seen sequential sleep();
and conditional execution. }
Control flow
//…
✤ The order in which statements in a bool lunch_time = ...;
bool bed_time = ...;
program are executed is called the
flow of control or control flow if (lunch_time) {
eat();
} else if (bed_time) {
✤ So far we have only seen sequential sleep();
and conditional execution. }
Control flow
//…
✤ The order in which statements in a bool lunch_time = ...;
bool bed_time = ...;
program are executed is called the
flow of control or control flow if (lunch_time) {
eat();
} else if (bed_time) {
✤ So far we have only seen sequential sleep();
and conditional execution. }
Consider the following task
Consider the following task
✤ Write a piece of code that asks the user to input non-zero integers and
returns the total number of integers entered, including 0, once 0 is entered.
✤ Write a piece of code that asks the user to input non-zero integers and
returns the total number of integers entered, including 0, once 0 is entered.
int input = 1;
int count = 0;
while (input != 0) {
printf("Enter a non-zero integer: ");
scanf("%d", &input);
count++;
}
printf("You entered %d integers\n”,
count);
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
while (input != 0) {
printf("Enter a non-zero integer: ");
scanf("%d", &input);
count++;
}
printf("You entered %d integers\n”,
count);
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
input ≠ 0?
while (input != 0) {
printf("Enter a non-zero integer: ");
scanf("%d", &input);
count++;
}
printf("You entered %d integers\n”,
count);
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
input ≠ 0?
while (input != 0) {
printf("Enter a non-zero integer: ");
Yes scanf("%d", &input);
Take input
Increment count count++;
}
printf("You entered %d integers\n”,
count);
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
input ≠ 0?
while (input != 0) {
printf("Enter a non-zero integer: ");
Yes scanf("%d", &input);
Take input
Increment count count++;
}
printf("You entered %d integers\n”,
count);
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
No
input ≠ 0?
while (input != 0) {
printf("Enter a non-zero integer: ");
Yes scanf("%d", &input);
Take input
Increment count count++;
}
printf("You entered %d integers\n”,
count);
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
No
input ≠ 0?
while (input != 0) {
printf("Enter a non-zero integer: ");
Yes scanf("%d", &input);
Take input
Increment count count++;
}
printf("You entered %d integers\n”,
count);
Report count
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
No
input ≠ 0?
while (input != 0) {
printf("Enter a non-zero integer: ");
Yes scanf("%d", &input);
Take input
Increment count count++;
}
printf("You entered %d integers\n”,
count);
Report count
Count the non-zero values entered
input = 1
count = 0
int input = 1;
int count = 0;
No
input ≠ 0?
while (input != 0) {
LOOP printf("Enter a non-zero integer: ");
Yes scanf("%d", &input);
Take input
Increment count count++;
}
printf("You entered %d integers\n”,
count);
Report count
A repetition instruction: while loop
Initialisation
Test
No
Yes
While block
Update
Next statement
A repetition instruction: while loop
Initialisation
Test initialisation
No
while (test) {
Yes
while_block
While block update
}
Update next_stmt
Next statement
Menu driven programs
✤ Example: write a program that takes a real number, n, and asks the user to
choose between four operations on that number and reports the result
Update
Next statement
A repetition instruction: while loop
Initialisation
✤ Example: write a program that takes a
real number, n, and asks the user to
choose between four operations on that
Test
No number and reports the result
Yes
While block ✤ (1) en (2) ln n (3) log2 n (4) 1/n, or (0) exit
initialisation
Update while (test) {
while_block
update
}
Next statement next_stmt
A menu driven program
Initialise response to any
nonzero value ✤ Example: write a program that takes a
real number, n, and asks the user to
choose between four operations on that
respnose=0?
No number and reports the result
Yes
Get response ✤ (1) en (2) ln n (3) log2 n (4) 1/n, or (0) exit
Next statement
double n;
int response = -1;
while (response != 0) {
printf("Choose one of these four options:\n");
printf("1. e^n\n2. ln n\n3. log_2 n\n4. 1/n\n0. Exit\n");
scanf("%d", &response);
double result = 0;
if (response == 1) result = exp(n);
else if (response == 2) result = log(n);
else if (response == 3) result = log2(n);
else if (response == 4) result = 1/n;
while (response != 0) {
printf("Choose one of these four options:\n");
printf("1. e^n\n2. ln n\n3. log_2 n\n4. 1/n\n0. Exit\n");
scanf("%d", &response); Input error handling: what if the
response is not in the 0-4 range?
double result = 0;
if (response == 1) result = exp(n);
else if (response == 2) result = log(n);
else if (response == 3) result = log2(n);
else if (response == 4) result = 1/n;
✤ Suppose a kid is given ₹ 100 and allowed to go to the store and buy all he can with that
amount.
✤ asks the kid for the amount of the next item (assume he always enters a positive integer),
cart_total += item_price;
}
cart_total -= item_price;
cart_total += item_price;
}
cart_total -= item_price;
cart_total += item_price;
}
cart_total -= item_price;
✤ To trace a while loop, you may trace over statements multiple times
✤ Each time you pass through the loop, you trace over all of the statements
in the loop body
✤ You stop tracing (and jump to the end) when the boolean condition on
the loop evaluates to false
Program State
int cart_total = 0;
int item_price = 0;
cart_total =
item_price =
while (cart_total <= 100) {
cart_total =
item_price =
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total =
item_price =
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price =
while (cart_total <= 100) {
cart_total =
item_price =
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total =
item_price =
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total =
item_price =
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total =
item_price =
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
Is the expression
cart_total = 0 true for the
item_price
values=at0this point?
while (cart_total <= 100) { Yes! – so we enter the loop
cart_total =
item_price =
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total =
item_price =
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price =
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total =
item_price =
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price = 0
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total =
item_price =
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price = 0
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
Assume the first cart_total =
amount entered was item_price =
cart_total += item_price; 12
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price = 0
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0
item_price =
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price = 0
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0
item_price = 12
cart_total += item_price;
cart_total =
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price = 0
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0
item_price = 12
cart_total += item_price;
cart_total = 12
item_price =
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price = 0
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0
item_price = 12
cart_total += item_price;
cart_total = 12
item_price = 12
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0
item_price = 0
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0
item_price = 12
cart_total += item_price;
cart_total = 12
item_price = 12
}
We are at the end of the loop. cart_total =
item_price =
Go back and
cart_total -= item_price;
check the test
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
Copy over the values from the cart_total = 0 12
item_price = 0
previous iteration
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0
item_price = 12
cart_total += item_price;
cart_total = 12
item_price = 12
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12
item_price = 0 12
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0
item_price = 12
cart_total += item_price;
cart_total = 12
item_price = 12
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12
item_price = 0 12
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12
item_price = 12
cart_total += item_price;
cart_total = 12
item_price = 12
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12
item_price = 0 12
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12
item_price = 12 24
cart_total += item_price;
cart_total = 12
item_price = 12
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12
item_price = 0 12
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12
item_price = 12 24
cart_total += item_price;
cart_total = 12 36
item_price = 12
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12
item_price = 0 12
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12
item_price = 12 24
cart_total += item_price;
cart_total = 12 36
item_price = 12 24
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36
item_price = 0 12
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12
item_price = 12 24
cart_total += item_price;
cart_total = 12 36
item_price = 12 24
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36
item_price = 0 12 24
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12
item_price = 12 24
cart_total += item_price;
cart_total = 12 36
item_price = 12 24
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36
item_price = 0 12 24
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36
item_price = 12 24
cart_total += item_price;
cart_total = 12 36
item_price = 12 24
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36
item_price = 0 12 24
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36
item_price = 12 24 60
cart_total += item_price;
cart_total = 12 36
item_price = 12 24
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36
item_price = 0 12 24
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36
item_price = 12 24 60
cart_total += item_price;
cart_total = 12 36 96
item_price = 12 24
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36
item_price = 0 12 24
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36
item_price = 12 24 60
cart_total += item_price;
cart_total = 12 36 96
item_price = 12 24 60
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36
item_price = 12 24 60
cart_total += item_price;
cart_total = 12 36 96
item_price = 12 24 60
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36
item_price = 12 24 60
cart_total += item_price;
cart_total = 12 36 96
item_price = 12 24 60
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60
cart_total += item_price;
cart_total = 12 36 96
item_price = 12 24 60
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96
item_price = 12 24 60
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60 5
}
cart_total =
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60 5
}
cart_total = 101
item_price =
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60 5
}
cart_total = 101
item_price = 5
cart_total -= item_price;
cart_total =
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60 5
}
cart_total = 101
item_price = 5
cart_total -= item_price;
cart_total = 96
item_price =
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60 5
}
cart_total = 101
item_price = 5
cart_total -= item_price;
cart_total = 96
item_price = 5
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
For clarity, use separate columns item_price = 12 24 60 5
cart_total +=for
item_price;
each iteration: number of
cart_total = 12 36 96 101
iterations = number of columns item_price = 12 24 60 5
}
cart_total = 101
item_price = 5
cart_total -= item_price;
cart_total = 96
item_price = 5
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60 5
}
Note, columns are shown only cart_total = 101
item_price = 5
inside the loop
cart_total -= item_price;
body, not before
and after! cart_total = 96
item_price = 5
Program State
int cart_total = 0;
int item_price = 0;
cart_total = 0
item_price = 0
while (cart_total <= 100) {
cart_total = 0 12 36 96
item_price = 0 12 24 60
printf("Current cart total: %3d\n", cart_total);
printf("Enter next item price: ");
scanf("%d", &item_price);
cart_total = 0 12 36 96
item_price = 12 24 60 5
cart_total += item_price;
cart_total = 12 36 96 101
item_price = 12 24 60 5
}
cart_total = 101
item_price = 5
cart_total -= item_price;
cart_total = 96
item_price = 5
Your turn
✤ using recursion
Your turn
✤ using recursion
Your turn
✤ using recursion
Your turn
✤ using recursion
Your turn