这个公式在"accumulate"时采用什么参数?

What parameters this formula takes when in "accumulate"?

本文关键字:什么 参数 accumulate      更新时间:2023-10-16

这段代码是从另一个用户问题复制而来的,我很好奇积累在这里是如何工作的。我从这段代码中得到了正确的结果,但想知道 lcm 在"累积"时采用什么参数。初始化为 A,范围之和为 b?请帮忙

#include <numeric>
int gcd(int a, int b)
{
    for (;;)
    {
        if (a == 0) return b;
        b %= a;
        if (b == 0) return a;
        a %= b;
    }
}
int lcm(int a, int b)
{
    int temp = gcd(a, b);
    return temp ? (a / temp * b) : 0;
}
int main()
{
    int arr[] = { 5, 7, 9, 12 };
    int result = std::accumulate(arr, arr + 4, 1, lcm);
    std::cout << result << 'n';
}

lcm将采用的第一个参数是到目前为止的累积值(从 1 开始,std::accumulate 的第三个参数),第二个参数将是 arr 中的一个元素。接下来,无论返回什么lcm都作为第一个参数传递,arr中的下一个元素作为第二个参数传递。

有关更多详细信息,请参阅参考资料。

您可以轻松地将ab写入lcm中的标准输出,以查看发生了什么。