假设你有一个函数返回两个数组之间的长度差异,但是,它没有使用传统方法来查找长度而是使用递归函数。
你能帮我找一个循环不变量吗?我理解循环不变量是在条件之前和条件之后必须为真的。但是,我真的无法理解它。这是代码:
function func (int arr1_length, int arr2_length) {
if (arr1_length == 0 && arr2_length == 0) return 0;
if (arr1_length == 0) return arr2_length;
if (arr2_length == 0) return arr1_length;
return func (arr1_length-1, arr2_length-1);
}
第一个调用是func(arr1.length,arr2.length);