C语言函数3

本文介绍了C语言中的函数递归概念,包括递归定义、递归必要条件和递归函数实例,如打印整数的每一位和计算斐波那契数。递归通过将大问题分解为小问题来解决,但需要注意效率问题,因为递归可能导致重复计算。非递归实现虽然可能降低可读性,但在效率上更优。
摘要由CSDN通过智能技术生成

函数递归

递归定义:
程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

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

递归的必要条件:

  • 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
  • 每次递归调用之后越来越接近这个限制条件。

递归函数举例:

  1. 接受一个整型值(无符号),按照顺序打印它的每一位。

    解析:
    如输入1234,要使按顺序输出1 2 3 4
    函数带入参数(1234)
    由于1234不是单个数字,则进入向内层 的过程(给1234/10)
    再次带入参数(123)
    由于123不是单个数字,则进入向内层 的过程(给123/10)
    再次带入参数(12)
    由于12不是单个数字,则进入向内层 的过程(给12/10)
    再次带入参数(1)
    由于1是单个数字,则进行打印并向外层 的过程。
    在这里插入图片描述
    代码:


#include <stdio.h>
void print(int n) {
   
   if(n>9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值