use*_*493 3 java methods return-value
所以一直在研究我过去的考试,并遇到这个问题,询问如果num = 7,返回值是多少?将它插入BlueJ告诉我16,func1做了什么让它成为16?声明如何在方法中再次使用该方法?我搜索但很难找到这个确切的例子,因为它只是通常使用方法.
谢谢,
public int func1(int num)
{
if ( num <= 2 ) return 1;
return func1(num – 2) + num;
}
Run Code Online (Sandbox Code Playgroud)
这是对您正在使用它的相同函数的递归调用.
因此,func1(num – 2)将调用相同的函数 - public int func1(int num)用num = num - 2,直到num >= 2
那么,你的递归是这样的: -
func(n)
calls func(n-2)
calls func(n-4)
.. so on
calls func(1)
returns 1
returns 1 + 3 + ... + (n - 4)
returns 1 + 3 + ... + (n - 4) + (n - 2)
returns 1 + 3 + ... + (n - 4) + (n - 2) + n
Run Code Online (Sandbox Code Playgroud)
更新: - 推广上面的递归,让你弄清楚它是如何工作的.
你可以通过: - 递归 - 维基页面
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |