首页 > 试题广场 >

如下代码,执行结果为: def f(x): i...

[单选题]
如下代码,执行结果为:
def f(x):
    if x == 0:
        return 0
    elif x == 1:
        return 1
    else:
        return (x*f(x-1))
print(f(5))


  • 120
  • 720
  • 24
  • 64
递归调用,5的阶乘!
发表于 2019-10-20 21:31:56 回复(0)

大概意思是说:如果 x=5,那么就返回 5*f(4) 的值。而想知道这个值,就得先算出 f(4) 等于多少。根据函数 f(x),f(4) = 4*f(3),所以 f(5) = 5*4*f(3)。以此类推,推到 f(5) = 5*4*3*2*f(1)。函数 f(x) 说了,当 x==1 时,返回值为 1。所以:f(5) = 5*4*3*2*1 = 120。所以,输出结果如下:

120

发表于 2019-11-15 10:01:36 回复(4)
谁添加顺丰的题, 全部不是java的..  真恶心
编辑于 2019-08-05 08:59:21 回复(2)
虽然做对了,但这是一道 python题啊
发表于 2019-08-07 19:44:14 回复(0)
f(5) = 5 * f(4) = 120
f(4) = 4 * f(3) = 24
f(3) = 3 * f(2) = 6
f(2) = 2 * f(1) = 2
f(1) = 1
发表于 2020-01-10 10:20:25 回复(0)
递归调用,5!
发表于 2019-03-23 18:17:18 回复(0)
递归,一个一个往下推,拿出小本本和小笔笔,
f(0):0
f(1):1
f(2):2
f(3):6
f(4):24
f(5):120
发表于 2020-08-10 19:24:49 回复(1)
Python的递归题,解题思路一样的,求5的阶乘,也就是5!=5*4*3*2*1=120
发表于 2020-07-06 19:14:13 回复(2)
每次看到顺丰的题, 不管做没做对, 我都要吐槽: ***是来捣乱的
发表于 2020-04-01 11:09:19 回复(0)
这不是Python吗??????
发表于 2020-02-04 00:15:05 回复(0)
5!
发表于 2019-03-22 17:46:31 回复(0)
有一说一这题不应该结果为0么
发表于 2019-11-22 13:18:46 回复(2)
5*(5-1)*(4-1)*(3-1)*(2-1)
发表于 2023-10-24 16:07:01 回复(0)
递归。f(5)=5*f(4),f(4)=4*f(3),f(3)=3*f(2),f(2)=2*f(1),f(1)=1,即f(5) = 5*4*3*2*1=120
发表于 2022-11-14 17:02:38 回复(0)
该题输出的结果,因为print(f(5)) 其中()中的数字,为实际参数,这里参数x = 5,根据判断条件,这里应该计算返回结果为:return(5*f(4)),然后4 根据循环条件,我们计算的结果为:return(5*4*f(3)),一直这样循环,最后计算为:return(5*4*3*2*f(1)),f(1)的结果根据循环条件就为:1,所以计算的最红结果为:return(5*4*3*2*1)的结果就为:120
发表于 2022-04-28 14:20:10 回复(0)
5!一直往下列即可。
发表于 2022-04-18 09:09:09 回复(0)
?????f(0)呢
发表于 2022-04-06 10:03:49 回复(0)
递归
5*f(4)                                                                                     5*24= 120
      代入4*f(3)                                                                 4*6=24
                  代入3*f(2)                                                3*2 =6
                               代入2*f(1)                              2*1 =2
                                             return 1                 递推
发表于 2022-03-02 15:29:23 回复(0)
这个题就相当于是用递归函数算5的阶乘。实参5传入x,5既不等于0也不等于1,所以执行else,此时返回5*f(4),f(4)执行同样的操作直到返回值为2*f(1),此时x=1,返回1,即f(1)=1,则f(2)=2*f(1)=2*1=2,f(3)=3*f(2)=3*2=6,f(4)=4*f(3)=4*6=24,f(5)=5*f(4)=5*24=120,此时输出f(5)
发表于 2022-01-16 21:31:22 回复(1)
这是一个递归函数,当x >1时开始递归。代入x=5即是5* f(5-1), f(4)=4*f(4-1)依次类推5×4×3x2x1 = 120
发表于 2022-01-08 13:44:34 回复(0)