정답:
// for문을 이용해 factorial을 재작성하세요.
pub fn factorial(n: u32) -> u32 {
let mut result = 1;
let mut fac = n;
if n == 0 || n == 1 {
result = 1;
} else {
for i in 2..=fac {
result *= i;
}
}
result
}
while과 마찬가지로 가변 변수 result와 fac을 정의한 후,
2부터 fac까지 범위를 지정하고 i 변수로 추출하여 result에 차례로 곱해 팩토리얼을 계산했다.
만약 n이 5였다면 fac 역시 5가 된다. for문에서는 2..=fac 에 의해 2, 3, 4, 5가 차례로 꺼내져 result에 곱해지므로 result = 120이 된다.