📅  最后修改于: 2023-12-03 15:28:41.391000             🧑  作者: Mango
本道题为计算机科学门槛考试(GATE)-计算机科学与信息技术(CS)-2002年第42题。
给定以下程序:
def f(m):
if m == 0: return(1)
else: return(m * f(m-1))
print(f(3))
程序的输出结果是什么?
首先,回顾一下 f
函数的定义:
def f(m):
if m == 0:
return 1
else:
return m * f(m-1)
随后,执行 f(3)
,即:
f(3) = 3 * f(2)
= 3 * 2 * f(1)
= 3 * 2 * 1 * f(0)
= 3 * 2 * 1 * 1
= 6
所以,最终输出结果为 6
。
因此本题的答案为:6
。
本题考察了递归与函数的基础使用。函数 f
采用递归的方式来计算一个数的阶乘。在程序中,先判断输入参数 m
是否为 0,如果是,则返回 1;否则则将 m
与 f(m-1)
相乘并返回。当 f
函数被认为是 0 时,会触发一系列递归调用,直到 m
等于 0,输出结果为 1,这时其它递归函数依次返回结果,最终获得并输出结果。