2个回答
展开全部
第一遍调用fun时,由于n不满足1或2,再次执行fun函数,此时fun(n-1,&f1);即得到f1 = 1;fun(n-2,&f2);即得到f2 = 1;所以*p=2,即s=2;
倘若fun(4,&s);也一样做,第一遍调用fun时,不满足条件递归,即第二次调用fun(3,&f1),发现还是不满足,第三次调用fun(2,&f1)(这个f1跟前面f1是2个完全不同的参数喔),满足条件返回f1=1,执行第二步,fun(1,&f2)得到f2=1,那么最前面的那个f1=*p=f1(这个是第二次的f1)+f2(也是第二次的f2)=2,那么回到第一次调用的fun函数里继续执行fun(2,&f2),这是第4次调用了,满足条件返回f2=1,所以第一次调用的结果为*p=f1+f2=2+1=3,级s=3。多级递归也是这样做,其实这个题的结果也是有规律的,自己试下
倘若fun(4,&s);也一样做,第一遍调用fun时,不满足条件递归,即第二次调用fun(3,&f1),发现还是不满足,第三次调用fun(2,&f1)(这个f1跟前面f1是2个完全不同的参数喔),满足条件返回f1=1,执行第二步,fun(1,&f2)得到f2=1,那么最前面的那个f1=*p=f1(这个是第二次的f1)+f2(也是第二次的f2)=2,那么回到第一次调用的fun函数里继续执行fun(2,&f2),这是第4次调用了,满足条件返回f2=1,所以第一次调用的结果为*p=f1+f2=2+1=3,级s=3。多级递归也是这样做,其实这个题的结果也是有规律的,自己试下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询