函数的递归

本文详细介绍了递归的概念,作为一种在程序设计中广泛应用的算法,通过将大问题分解为更小的子问题来解决问题。文中提供了递归的基本思考方式、两个必要条件以及一个计算无符号整数第一位的示例。同时,通过对比常规方法和递归方式求解字符串长度,展示了递归的函数重复调用特点。
摘要由CSDN通过智能技术生成

什么是递归:程序调用自身的编程技巧称为递归(recursion)。

递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略

只需要少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

递归的主要思考方式在于:把大事化小

递归的两个必要条件

1.存在限制条件,当满足这个限制条件的时候,递归便不再继续。

2.每次递归调用之后越来越接近这个限制条件。

 

例:接受一个整型值(无符号)(unsigned,无符号)

按照顺序打印它的第一位。("%d"是打印有符号整数,会有正负数。"%u"是打印无符号整数,这里可以用到)

0ba83b49a81145679f172f27a9b59178.jpg

 ea367e5e96b8448489166b147194483e.jpg

整个递归思路过程:在自定义函数 print看起

因为输入的是1234,程序运行至if语句看到print,那么,print又会执行一次自定义函数,将1234/10,得到123,123又会执行if语句,看到print,那么,print又会执行一次自定义函数,将123/10,得到12,就这样循环下去,直至1<9出if语句,才执行输出,得到1,往回走,得到2,再得3,最后得4,这样便按顺序输出了

1 2 3 4

重点:函数重复调用

图解: 

83a16fe680994bf3be813fde8ab74b14.jpg

 我的理解:所谓递归,就是在一条函数中,一步一步的执行下去,这一次执行会传递本身在(看不见)的下一条里面去,最后直到程序执行完走出,在(看不见)的最后一步向上一步一步的返回。

例:编写函数不允许创建临时变量,求字符串的长度。

常规写法,创建了count这个临时变量

5dfb2603e98f4d82b4b8aa0b2fb8165e.jpg

7d6c3a4b6af643df803b56549d9eac9a.jpg 

914b29ee7aa444aaae5432bbe3da1ee7.jpg 

 按递归思想来写

7a6c6478aa2d4b059a33032a7c86557d.jpg

278518d5301d472fb5d62e154e2bc277.jpg 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值