什么是递归:程序调用自身的编程技巧称为递归(recursion)。
递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略
只需要少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
递归的主要思考方式在于:把大事化小
递归的两个必要条件
1.存在限制条件,当满足这个限制条件的时候,递归便不再继续。
2.每次递归调用之后越来越接近这个限制条件。
例:接受一个整型值(无符号)(unsigned,无符号)
按照顺序打印它的第一位。("%d"是打印有符号整数,会有正负数。"%u"是打印无符号整数,这里可以用到)
整个递归思路过程:在自定义函数 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
重点:函数重复调用
图解:
我的理解:所谓递归,就是在一条函数中,一步一步的执行下去,这一次执行会传递本身在(看不见)的下一条里面去,最后直到程序执行完走出,在(看不见)的最后一步向上一步一步的返回。
例:编写函数不允许创建临时变量,求字符串的长度。
常规写法,创建了count这个临时变量
按递归思想来写