递归初认识
递归在c语言中递归就是自己调用自己。递推回归大事化小。内存栈区 每一次递归调用都会在内存的栈区申请空间这叫函数堆栈堆区静态区eg用递归的思想求阶乘int fac(int n){if(n0)return 1;if(n0)return fac(n-1)*n;if(n0)return -1;}int main(){int n0;scanf(%d,n);int retfac(n);printf(%d,ret);return 0;}eg2分别打印输入的数字12341 2 3 4。void p(int);void p(int n){if(n10)p(n/10);printf(%d ,n%10);}int main(){int n0;scanf(%d,n);p(n);return 0;}eg3:求第n个斐波那契数1 1 2 3 5 8 13 21 34 55.....)int fib(int);int fib(int n){if(n2)return 1;elsereturn fib(n-1)fib(n-2);}int main(){int n;scanf(%d,n);int cfib(n);printf(%d,c);return 0;}递归的使用有时伴随着大量的计算效率低栈容易溢出故换成效率高的迭代循环用迭代写eg3int fab(int);int fab(int n){int a1,b1,c1;while(n3){cab;ab;bc;n--;}return c;}int main(){int n;scanf(%d,n);int cfab(n);printf(%d,c);return 0;}