1、递推法 从已知的初始条件出发 依据某种递推关系 逐次推出所要求的各中间结果及最后结果的算法 假设兔子出生后两个月就能每月生一对小兔子 如果1月份出生了一对小兔子 请分析3 7月份的兔子对数 假设兔子出生后两个月就能每月生一对小兔子 如果1月份出生了一对小兔子 请分析3 7月份的兔子对数 请思考第n个月的兔子对数Fn 数列 1 1 2 3 5 8 13 21 35 Fn Fn 1 Fn 2 n 3 F1 1 F2 1 例13 猴子吃桃子问题 一只猴子采集了很多桃子 第一天吃了其中的一半 然后忍不住又吃了一个 第二天吃了剩下桃子的一半 然后忍不住又吃了一个 以后每天都这样 即吃了剩下桃子的一半 再
2、多吃一个 到第十天时就只剩下一个桃子了 问第一天 猴子共采集了多少桃子 分析问题 规律 每天的桃子数是前一天桃子数的一半减 那么 前一天的桃子数是后一天桃子数加 的 倍 规律的数学表达 如果用用Ai表示第i天的桃子数 则后一天的桃子数Ai 1 Ai 2 1 前一天的桃子数Ai 1 Ai 1 2 由于本例是从第九天开始 往前逐天计算 直到第一天 因此采用的是递推公式 Ai 1 Ai 1 2 循环变量i的计数是逐次减少 即i i 1 例13 猴子吃桃子问题 一只猴子采集了很多桃子 第一天吃了其中的一半 然后忍不住又吃了一个 第二天吃了剩下桃子的一半 然后忍不住又吃了一个 以后每天都这样 即吃了剩下
3、桃子的一半 再多吃一个 到第十天时就只剩下一个桃子了 问第一天 猴子共采集了多少桃子 例14 求任意两个自然数的最大公约数 辗转相除法 辗转相除法是一种求两个自然数的最大公约数的方法 假设对于任意两个自然数a b 当a b时 a q b r 其中 q是a除以b后得到的部分商 r是a除以b后得到的余数 那么 当r等于0时 b就是a b的最大公约数 否则 a b的最大公约数就等于b r的最大公约数 这是因为a与b的最大公约数一定是b与r的最大公约数 从而可以将b作为新的除式中的a r作为新的除式中的b 这样反复求约数 直至r等于0 这时的b就是原先的a和b的最大公约数 例如 a 144 b 46 例如 a 144 b 46 流程图的功能是 例15 当x 3 7时 求多项式ax4 bx3 cx2 dx e的值 分析问题 输入 输入最高项次数 多项式各项的系数和x的值 处理 把多项式ax4 bx3 cx2 dx e变形为 ax b x c x d x e 从上述变形式中可以看出 只要从最高项开始 逐次输入系数 并乘以x 直到输入常数项为止 循环次数由最高项次数决定