我有以下功能:
pub fn s_v1(n: &u64) -> u64 {
let mut x: u64 = 1;
for i in 1..=*n {
x = x * (*n + i) / i;
}
x
}
Run Code Online (Sandbox Code Playgroud)
这段代码给出了正确的答案s_v1(&20) == 137846528820
但是,如果我将 for 循环中的行更改为x *= (*n + i) / i;
答案改为s_v1(&20) == 16094453760
为什么结果不同?不是x = x * y一样吗x *= y?