gpt4 book ai didi

c++ - 该公式在 "accumulate"中采用哪些参数?

转载 作者:行者123 更新时间:2023-11-28 07:03:55 24 4
gpt4 key购买 nike

此代码是从另一个用户问题复制而来的,我很好奇这里的 accumulate 是如何工作的。我从这段代码中得到了正确的结果,但想知道 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 中的下一个元素作为第二个参数传递。

参见 a reference了解更多详情。

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

关于c++ - 该公式在 "accumulate"中采用哪些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com