【发布时间】:2021-05-13 18:31:36
【问题描述】:
int gcd(int a, int b)
{
while(a!=b)
{
if(a > b)
a = a - b;
else
b = b - a;
}
return a;
}
这个算法的时间复杂度是多少?谁能给个详细的解释?
【问题讨论】:
-
如果 a = 1 且 b = 0,此算法永远不会终止。
-
@templatetypedef nope,对于欧几里得减法算法,
a和b必须是正整数。 -
@Anatolii 修改算法以处理其中一个为零的输入不是很简单吗?
-
@templatetypedef 当然,你是对的,但我不知道 OP 有什么确切要求。至少,OP 可以使用
unsigned类型作为参数和函数返回类型。
标签: time-complexity euclidean-algorithm