C语言允许函数的递归调用。在递归调用中,调用函数又是被调用函数,执行递归函数将反复调用其自身。每调用一次就进入新的一层。
为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。常用的办法是加条件判断,满足某种条件后就不再作递归调用,然后逐层返回。
例5.7 设计函数power(n),它计算并返回n的阶乘,用递归方法实现。
分析:一个正整数n的阶乘可表示为n!,并特别规定0!=1。
例如5!=1*2*3*4*5=120。阶乘的定义还可以表示为:
上面的算法是阶乘的递归算法,因为在定义阶乘n!时又用到了另一个阶乘(n-1)!。阶乘的递归定义本身就给出了阶乘递归算法,满足递归算法就必须满足三个条件:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] 下一页