/* 求阶乘时设置最大调用层数,防止栈占满 当从函数进入另一个函数时当前函数的内容会入栈,另一个函数调用完时在出栈 */ int factorial(int n, int level) { //printf("%d \n", level); if(level>3) { printf("exit"); return -1; } if(n==0 || n==1) { return 1; } return n*fn(n-1,++level); }