谈C语言函数的递归和调用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


前言
pit “ l ! = ” y; r f \%d %dk , ) n (I n m,

, 、

:以 接简 递 )间 可 直 ( 归或 接 单
} ’
( 间接 递 归 ) 自己调 自 己 。主 要 包 括 : 地
() 1c语言 函数可 以递归调用。
( ) 以通 过 直 接 或 间 接 两 种 方 式 调 用 。 目前 只讨 论 直 接 递 归 调 2可
用。
3 递 归 说 明
当 函数 自己调 用 自己 时 , 系统 将 自动 把 函 数 中 当 前 的 变 量 和 形 参 暂 时保 留 起 来 , 新 一 轮 的 调 用 过 程 中 , 统 为 新 调 用 的 函 数 所 用 到 在 系 的变 量 和形 参 开 辟 另 外 的存 储 单 元 ( 内存 空 间 ) 每次 调 用 函数 所 使 用 。 的变 量 在不 同 的 内存 空 间 。
数的递归调用通常会降低程序的运行效率。
4 程 序 流 程
第 三 部 分 :* n 2(一 ) 3 2 1(一 ) 3! n 第 四 部 分 : n 3(一 ) 2 1(一 ) 4! n
第 五部 分 : n 5 1 5 5 0 得 到 值 1 结 束 递 归 。 1(一 ) - = , , 源 程序 : cit 1 f ( a nn
1 可 以应 用 这 个 转 化 过 程 使 问 题 得 到 解 决 。 . 2 1 必定要有一个明确的结束递归的条件。 . 3
内存 空 间 。程 序 的流 程 返 回到 上 一 层 的调 用 点 , 时取 得 当 初 进 入 该 同
2 递 归 实 例
例 : 用 递 归 的 方 法 求 n 使 ! 当nl , n > 时 求 !的 问 题 可 以转 化 为 n 【一 ) 新 问 题 。 n 1!的 比如 n 5 第 一 部 分 :* * * n ) =: 5 4 3 2 1n (一1! 第 二 部 分 :* " n 1 (一 ) 4 32 1(— ) n 2!
{ t; i t n
feit 1术每 次调 用 使 用 不 同 的参 数 / a( , nn fn 每 次 调 用 都 会 为 变 量 t 辟 不 同 的 内存 空 间 , t; i t 开 in = ) n = )半当 满 足 这 些 条 件 返 回 1 , “ = 1I = o , I (
3 4 0 ;. 东交通 大 学 3 1 92华
江西
南 昌 3 0 0) 3 0 0
【 摘 要 】 一 个 大 问 题 中 包含 若 干 个层 次 的 子 问题 , 且 这 些 子 问题 的性 质 相 同 只 是规 模 教 母 问 题较 小 , 么这 时 候 我 们 可 以 采 用 递 归和 在 并 那
层时 , 函数 中 的变 量 和 形 参 所 占用 的 内存 空 间的 数 据 。 所 有 递 归 问 题 都 可 以用 非 递 归 的 方 法 来 解 决 , 对 于 一 些 比较 复 但
杂 的 递 归 问 题 用 非 递 归 的 方 法 往 往 使 程 序 变 得 十分 复 杂难 以 读 懂 , 而 函 数 的递 归 调 用 在 解 决 这 类 问 题 时 能 使 程 序 简 洁 明 了 有 较 好 的 可 读 性 ; 由 于递 归 调 用 过 程 中 , 统 要 为 每 一 层 调 用 中 的 变 量 开辟 内 存 但 系 空 间 、 记 住 每 一 层 调 用 后 的 返 回点 、 增 加 许 多 额 外 的 开 销 , 此 函 要 要 因
科 技 信 息
0 I 坛 0 T论
S INC C E E&T C N O F MA I N E H OL GYI OR T O N
21 0 0年
第3 5期
谈 C语言函数的递归和调用
张 俊 飞
(. 饶职 业技 术 学院 1上
调 用 的 方 式 来 解 决 此 类 问题
江西
上饶
【 键 词 】 干 个层 次 的 子 问题 ; 归 ; 用 关 若 递 调
0 u t l ng a e a d l t e Re u sv he C a u g n Ca l h c r i e Fun to ci n
【 src ]o tisamao rbe eea vl o u — rbe , n hs u - rbe ftesmen tr u m l rsaepo lm Abta tC nan jr o lm i svrlees fsb polms adteesb polmso a aueb ts al —cl rbe s p n l h e
g d t e , h stme we c n u e r e r in a d c lst e o v h r b e o mo h r t i i a s e u so n al o r s l e t e p o l m.
【 ywod 】eea lvl o b polm ; eus e C l Ke r sSvrlees f u — rbe s R cri ; al , 须符合以下三个条件 : 必 11 可 以把 要 解 决 的 问 题 转 化 为 一 个 新 问题 .而 这 个 新 的 问题 的 解 . 决 方 法 仍 与 原 来 的 解 决 方 法 相 同 , 是 所 处 理 的 对 象 有 规 律 地 递 增 或 只
递减 。
递 归调 用 的层 次越 多 . 名变 量 的 占用 的存 储 单 元 也 就 越 多 。一 同 定 要 记 住 . 次 函数 的 调 用 , 统 都 会 为 该 函 数 的 变 量 开 辟 新 的 内存 每 系
空 间。 当本 次 调 用 的 函数 运 行 结 束 时 , 系统 将 释 放 本 次 调 用 时 所 占用 的
相关文档
最新文档