1.①程序调用自身的编程技巧称为递归
②思路:将一个大型复杂的问题转化为一个与原问题相似的规模较小的问题来求解 即用少量程序就可以描述出解题过程所需要的多次重复计算 大大减少代码量
2.递归的两个必要条件
①存在限制条件,当满足这个限制条件的时候,递归不再继续
②每次递归调用之后越来越接近这个限制条件
3.举例:输入整型 将各个数字分别打印
#include<stdio.h>
void print(int n)
{
if(n>9)
{
print(n/10);
}
printf("%d",n%10);
}
int main()
{
unsigned int num =0;
scanf("%d",&num);
//递归
printf(num);
}
举例:不创建临时变量求字符串长度
#include<stdio.h>
int my_strlen(char* str)
//普通方法
//{
// int count = 0;
// while(*str !='\0')
// {
// count++;
// str++;
// }
//}
//使用递归
{
if(*str !='\0')
return 1+my_strlen(str+1);
else
return 0;
int main()
{
char arr[] = "bit";
//int len = strlen(arr);//求字符串长度
//printf("%d\n",len);
//模拟实现一个strlen函数
int len = my_strlen(arr);
//arr是数组,数组传参,传过去的不是整个数组 而是第一个元素的地址
printf("len = %\n",len);
return 0;
}