Solution 1 - Find The Factorial

``````
fn test(n:i32) {

let mut factorial = 1; // define a mutable variable factorial

if n < 0 { // check if factorial is less than zero

println!("0"); // print 0

}

else if n == 0 {  // check if factorial is equal to 0

println!("1"); // print 1

}

else // go here if the above two conditions are false

{

for i in 1..n + 1{

factorial = factorial * i

}

println!("{}", factorial); // print the factorial

}

}

fn main(){

print!("factorial (4) : ");

test(4);

print!("factorial (6) : ");

test(6);

}

``````

output

``````factorial (4) : 24
factorial (6) : 720

``````

Explanation

• On line 2 a mutable variable factorial is initialized to 1.
• if construct
• As factorials exist only for positive numbers, the condition n < 0 on line 4, checks if the value of input number n is less than 0 , it prints 0 on line 5.
• if the if condition fails then else if is executed.
• else if construct
• As the factorial of 0 is 1, the condition n == 0 on line 7, checks if the value of input number n is equal to 0 then it prints 1 on line 8.
• if the else if condition fails then else block is executed.
• else construct
• A for loop is defined within the else block.
• for loop definition
• On line 12, the for loop iterates from 1 to n+1 times.
• for loop body - Within each iteration, on line 13 factorial is multiplied with i and the updated value is saved in factorial. - The loop iterates until the i is equal to n + 1.

• The value of factorial is printed on line 15.