递归算法x(x(8))需要调用几次函数x(int n)?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

class program

 {

     static void Main(string[] args)

     {

         int i;

         i = x(x(8));

     }

     static int x(int n)

     {

         if (n <= 3)

             return 1;

         else

             return x(n - 2) + x(n - 4) + 1;

     }

 }

递归算法x(x(8))需要调用几次函数x(int n)?

 

首先考虑考虑思路:一般的题目给出n那么就要考虑从最小的开始考虑:

F(0) = 1

F(1) =1

F(2) = 1

F(3) =1

F(4) = F(2)  + F(0) + 1 = 3

F(5) = F(3)  + F(1) + 1 = 3

F(6) = F(4)  + F(2) + 1 = 5

F(7) = F(5)  + F(3) + 1 = 5

F(8) = F(6)  + F(4) + 1 = 9

F(9) = F(7)  + F(5) + 1 = 9

 

X(X(8))

X(8) = 9

X(X(8)) =X(9)=9

所以X(X(8)) 经历的个数是9+9=18

 

和上一个题目接替思路很是相似 https://blog.youkuaiyun.com/weixin_40294256/article/details/95065069

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值