函数递归:
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。
递归的主要思考方式:
把大事化小。数组
用递归的方法是实现:接受一个整型值(无符号),按照顺序打印它的每一位。 例如: 输入:1234,输出 1 2 3 4ide
void print(int n) { if (n > 9) { print(n / 10); } printf("%d ", n%10); } int main() { unsigned int num = 0; scanf("%d", &num); print(num); return 0; }
编写函数不容许建立临时变量,求字符串的长度。函数
//递归的方法 int my_strlen(char* str) { if (*str != '\0') return 1 + my_strlen(str + 1); else return 0; } //把大事化小 //my_strlen("bit"); //1+my_strlen("it"); //1+1+my_strlen("t"); //1+1+1+my_strlen("") //1+1+1+0 //3 int main() { char arr[] = "bit"; //模拟实现一个strlen函数 int len = my_strlen(arr);//arr是数组,数组传参,传过去的不是整个数组,而是第一个元素的地址 printf("%d\n", len); return 0; }
递归存在限制条件:
存在限制条件,当知足这个限制条件的时候,递归便再也不继续。
每次递归调用以后愈来愈接近这个限制条件。code
2021.1.24递归