gpt4 book ai didi

algorithm - 扩展 Euclid 算法 - 是否有非递归版本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:06:23 24 4
gpt4 key购买 nike

我实现了以下版本的扩展欧几里得算法:

long gcdex(const long& a, const long& b, long& x, long& y)
{
if (a == 0) {
x = 0; y = 1;
return b;
}

long x1, y1;
long d = gcdex(b % a, a, x1, y1);
x = y1 - (b / a) * x1;
y = x1;
return d;
}

我不知道如何实现它的非递归版本,你能帮我吗?

最佳答案

任何递归算法都可以使用迭代和附加堆栈实现为非递归算法。但这仍然会导致一些算法的可读性大大降低,也可能不会提高效率。

我喜欢你的算法版本 - 它简短易读(虽然你可能需要重命名一些变量)并且它为你提供了算法的最佳复杂性。

关于algorithm - 扩展 Euclid 算法 - 是否有非递归版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22991075/

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