研发埠
标题:
[编程题] 用递归求数组最大值的位置
[打印本页]
作者:
苏晓晓
时间:
2013-8-16 10:09
标题:
[编程题] 用递归求数组最大值的位置
很奇葩的一道题,初看很简单,结果想了很久才写出来:1.int max(const int a[], int n)2.{3. if(n == 1)4. return a[0];5. int i = a[0];6. int j = max(a+1, n-1);7. if(i > j)8. return i;9. else10. return j;11.}复制代码结果发现上面的代码是求最大值而不是他的位置……又想了很久始终无解(感觉思路被求最大值绕进去了),求高人解答ps:要求不用global variable,不用static,不可改变max函数的argument
作者:
王培培
时间:
2013-8-16 10:14
1、lz的思路已经很巧妙了,只要把返回值换回成数组的下标,注意比较时取数组值即可。2、代码中还要加一个容错处理,就是当输入值n<1时,(0或负数都可能),函数的返回值,或者做报错信号,或者兼容n=1处理。
欢迎光临 研发埠 (http://bbs.yanfabu.com/)
Powered by Discuz! X3.2