计算机基础,递归选择专项练习(牛客)上

1. 有函数int func(int i)的实现为   请问函数调用func(5)的返回值是多少()

int func(int i)
{
    if (i > 1)
        return i * func(i - 1);
    else
        return 1;
}

解析:func(5) = 5 * func(4)

                       = 5 * 4 * func(3) 

                       = 5 * 4 * 3 * func(2) 

                       = 5 * 4 * 3 * 2 * func(1)

                       =    5 * 4 * 3 * 2 *  1

                       = 120 

2 .

 

解析:栈的特点是“先进后处,后进先出”,在程序执行过程中,主程序先进栈,被调用的程序后进栈;当被调用程序结束后,先出栈,最后主程序运行结束了,主程序才出栈。

3. 

4. 

5.

6.

解析:f(x) 当x大于0时,返回x*f(x-1),否则返回2

f(0) = 2

f(1) = 1 * f(0) = 2

f(2) = 2 * f(1) = 4

f(3) = 3 * f(2) = 12

f(4) = 4 * f(3) = 48

f(4) = f(f(2))   = 48

7.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值