确定递归函数的循环不变量

时间:2018-05-14 20:59:13

标签: loops recursion loop-invariant

假设你有一个函数返回两个数组之间的长度差异,但是,它没有使用传统方法来查找长度而是使用递归函数。
你能帮我找一个循环不变量吗?我理解循环不变量是在条件之前和条件之后必须为真的。但是,我真的无法理解它。这是代码:

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);

0 个答案:

没有答案
相关问题