Функция для вычисления факториала выглядит следующим образом. Но ясно, что usize недостаточно велик?
fn main() {
println!("{}", factorial(100000));
}
fn factorial(n: usize) -> usize {
(1..n+1).fold(1, |a, b| a * b)
}
сообщение об ошибке: поток 'main' запаниковал при 'попытке умножить с переполнением'
Позже я планировал использовать рекурсию для вычисления факториал, но результат был inf
fn factorial(num: f64) -> f64 {
match num {
0.0 => 1.0,
1.0 => 1.0,
_ => factorial(num - 1.0) * num,
}
}