我有以下代码:
fn hailSeq(number: i32) -> Vec<i32> {
let mut vec = Vec::new();
vec.push(number);
if number == 1 {
vec.push(1);
return vec;
}
if number % 2 == 0 {
let num = number / 2;
vec.push(num);
hailSeq(num);
} else {
let num = 3 * number + 1;
vec.push(num);
hailSeq(num);
}
return vec;
}
它计算冰雹序列并在 1 处停止。输出应如下所示hailSeq(11):
[11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
但是,我的输出如下所示:
[11, 34]
我不确定为什么会发生这种情况。也许 Rust 中存在我不知道的递归限制,但我确信我的代码中可能只是一个错误。