C语言之递归

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;
}

 

 

  • 18
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值