这里的 = 运算符有什么用法?

What is the usage of the = operator here?

本文关键字:什么 用法 运算符 这里      更新时间:2023-10-16

下面是我在阶乘中查找尾随零数的解决方案,它有效,我发布它是为了了解算法的工作原理,即 n 的商之和除以 5 ^ i,其中 i>0。

#include <cmath>
long zeros(long n) {
long sum = 0;
for (int i = 1;; ++i) {
int m = n / pow(5, i);
if (m == 0)
break;
else sum += m;
}
return sum;
}

我看到了这个解决方案,它让我对=运算符的使用感到困惑。在这种情况下,=5意味着什么?

long zeros(long n) {
long result = 0;
while(n)
result += n/=5;
return result;
}

表达式result += n/=5等效于先将n的值更新为n/5,然后将result的值更新为result + nn现在n/5的位置。

// result += n/=5 is same as doing
n = n / 5;
result = result + n;

这里的/=类似于+=,因为n/=5等同于n = n/5

将值或变量分配给变量 即 m = n 表示如果 n 为 15,m 将是 n 的值,即 15