Complete the code to calculate factorial using recursion.
fn factorial(n: u32) -> u32 {
if n == 0 {
1
} else {
n * factorial([1])
}
}Factorial uses recursion by multiplying n with factorial of n-1 until n reaches 0.
Complete the code to calculate factorial using iteration.
fn factorial_iter(n: u32) -> u32 {
let mut result = 1;
for i in 1..=[1] {
result *= i;
}
result
}Iteration multiplies all numbers from 1 up to n to get factorial.
Fix the error in the recursive Fibonacci function by completing the blank.
fn fib(n: u32) -> u32 {
if n <= 1 {
n
} else {
fib(n - 1) + fib([1])
}
}Fibonacci uses fib(n-1) + fib(n-2) to calculate the nth number.
Fill both blanks to create a recursive function that sums numbers from n down to 1.
fn sum_to_n(n: u32) -> u32 {
if n == 0 {
0
} else {
n + sum_to_n([1])
}
}
fn main() {
let result = sum_to_n([2]);
println!("Sum is {}", result);
}The recursion reduces n by 1 each call, and main calls sum_to_n with 0.
Fill all three blanks to create an iterative function that calculates the nth Fibonacci number.
fn fib_iter(n: u32) -> u32 {
let (mut a, mut b) = (0, 1);
for _ in 0..[1] {
let temp = [2];
a = b;
b = temp;
}
b
}
fn main() {
let result = fib_iter([3]);
println!("Fibonacci number is {}", result);
}The loop runs n times, updating a and b by adding previous values. main calls fib_iter with n.
