C允许函数调用自己,该调用过程称为递归。
工作过程main()调用了带参数1的up_and_down()函数,以此类推#1 --->#2 --->#3 --->#4.
当执行到第四级时,if测试条件为假,up_and_down()函数停止调用自己,开始执行第二条printf语句打印#4,此时第四级调用结束,控制被传回它的主调函数(#3),在第三调用中,执行的最后的一条语句是调用if语句中的第四级调用,被调函数(#4)把控制返回在这个位置,因此第三级继续执行后面的代码(第二个printf)以此类推:#3--->#2--->#1
循环与递归实现求阶乘
循环:n * (n-1) * (n-2) ......* 1
递归:n * !(n-1)
递归处理倒序:十进制转换二进制,处理最后一位。
网友评论