使用替换乘法的方法。
public static int mult(int num, int repeat){
if (repeat == 0) return 0;
if (repeat == 1) return num;
return num + mult(num, repeat - 1);
}
就时间和空间复杂性而言,这是O(k)时间,其中k是重复和O(1)空间?
答案 0 :(得分:3)
这是O(K)时间,因为您每repeat
调用此函数一次,并且每次调用都是O(1)。但是,在你达到终止条件之前(没有尾调用递归优化),它也是O(k)空间你将拥有k个堆栈帧。