C递归浅析

来源:互联网 时间:1970-01-01

#include <stdio.h>void up_and_down(int);int main(void){ up_and_down(1); return 0;}void up_and_down(int n){ printf("Level %d: n location %p/n", n, &n); if (n < 4) up_and_down(n+1); printf("LEVEL %d: n location %p/n", n, &n); }
递归的基本原理:1、每一级的函数调用都有自己的变量;2、每一次函数调用都会有一次返回;3、递归函数中,位于递归调用前的语句和各级被调函数具有相同的执行顺序;4、递归函数中,位于递归调用后的语句的执行顺序和各个被调函数的顺序相反;5、虽然每一级递归都有自己的变量,但是函数代码并不会得到复制;6、递归函数中必须包含可以终止递归调用的语句。eg.将一个整数转换成二进制形式:
#include <stdio.h>void to_binary(unsigned long n);int main(void){ unsigned long number; printf("Enter an integer (q to quit):/n"); while (scanf("%ul", &number) == 1) { printf("Binary equivalent: "); to_binary(number); putchar('/n'); printf("Enter an integer (q to quit):/n"); } printf("Done./n"); return 0;}void to_binary(unsigned long n) //* recursive function { int r; r = n % 2; if (n >= 2) to_binary(n / 2); putchar('0' + r); return;}

相关阅读:
Top