java递归问题! 20
2个回答
展开全部
我晕~~~/*重点: int static f(int n)方法 每次只会返回一个值; */
这是斐波那契数列 OK? 1,1,2,3,5,8,13,21,33,54…………
F(n) = F(n-1) + F(n-2);
“问题1:f3等于2现在,是直接返回给f4是要判断了才返回给f4?”
F(n) = F(n-1) + F(n-2) --》F(4) = F(3) + F(2) ,现在f3=2,已经得到F(3)的值就直接返回给F(4)啊,接下来判断F(2),直接返回F(2)=1,所以F(4) = F(3) + F(2) =2+1=3;
问题2:f4为什么还要判断f2呢? /*重点: int static f(int n)方法 每次只会返回一个值; */
因为 F(4) = F(3) + F(2) ,得到F(3)的值,并不能得到F(2)的值
(虽然会调用F(2)的值,但是F(2)的值没有在方法F(int n)返回,
所以F(2)的值还是空,因为你代码的 int static f(int n)方法 每次只会返回一个值;)
调用一次该方法,只能返回一个值F(3),但是在递推式“F(4) = F(3) + F(2)”中的F(2)的值没得到,所以要再次调用F(2),返回一个值
这是斐波那契数列 OK? 1,1,2,3,5,8,13,21,33,54…………
F(n) = F(n-1) + F(n-2);
“问题1:f3等于2现在,是直接返回给f4是要判断了才返回给f4?”
F(n) = F(n-1) + F(n-2) --》F(4) = F(3) + F(2) ,现在f3=2,已经得到F(3)的值就直接返回给F(4)啊,接下来判断F(2),直接返回F(2)=1,所以F(4) = F(3) + F(2) =2+1=3;
问题2:f4为什么还要判断f2呢? /*重点: int static f(int n)方法 每次只会返回一个值; */
因为 F(4) = F(3) + F(2) ,得到F(3)的值,并不能得到F(2)的值
(虽然会调用F(2)的值,但是F(2)的值没有在方法F(int n)返回,
所以F(2)的值还是空,因为你代码的 int static f(int n)方法 每次只会返回一个值;)
调用一次该方法,只能返回一个值F(3),但是在递推式“F(4) = F(3) + F(2)”中的F(2)的值没得到,所以要再次调用F(2),返回一个值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询