/*
递推算法:通过已知条件,利用特定关系得到中间结论,然后得到最后结果。1.顺推法:从已知条件出发,逐步推导出要解决问题的方法。例如斐波拉契数列。2. 逆推法根据结果推导出已知条件
*/ // 斐波拉契数列的递推实现

# include <stdio.h>int main(void)
{int Fn, f1, f2;// 初始值f1 = 1;f2 = 1;int cnt;printf("请输入您想求解的数列元素位数:");scanf("%d", &cnt);if (1 == cnt)Fn = f1;else if (2 == cnt)Fn = f2;else{int i;for (i = 3; i <= cnt; ++i){Fn = f1 + f2;f1 = f2;f2 = Fn;}} printf("斐波拉契数列中第%d为%d!\n", cnt, Fn);return 0;
} 

/*
迭代算法:迭代算法又称为辗转法,是一种不断用旧的变量值递推得到新的变量值的过程。
迭代法与递推法相同之处在于都是使用循环语句实现。不同之处
在于,迭代法使用的是 while 循环,而递推法使用的是 for 循
环。迭代法在迭代结束后得到一个解或一组解,递推法的循环控
制变量改变一次就得到一个解,循环结束得到一系列的解。迭代
法的迭代次数事前是未知的,而递推法的递推次数事前是已知的迭代法分为精确迭代和未知迭代。
精确迭代:通过迭代可以得到一个精确的解。例如:求最大公约数,进制转换,质因数的分解 ,谷角猜想。
近似迭代:通过迭代得到近似的解。例如:二分法,求定积分。
*/ // 利用精确迭代法求最大公约数和最小公倍数

# include <stdio.h>int main(void)
{int i, j;printf("请输入两个正整数:");scanf("%d %d", &i, &j);int r;  //  表示余数int f1, f2;if (i < j){f1 = j;f2 = i;} else{f1 = i;f2 = j;}while (0 != (f1 % f2)){r = f1 % f2;f1 = f2;f2 = r;}printf("最大公约数为 %d\n最小公倍数为 %d\n", r, i*j/r);return 0;
} 

转载于:https://www.cnblogs.com/lnlin/p/6776899.html

数据结构笔记 递推与迭代相关推荐

  1. 直接法-穷举、递推和迭代

    在算法设计中,我们会遇到一些可以用直观的思维解决的问题.下面我们介绍三种基本的方法:穷举.递推和迭代. 1. 穷举法 穷举法是一种最简单的算法那设计策略,常常是直接基于问题的描述和所涉及的概念.一般来 ...

  2. 递归,递推,迭代的区别

    递归 程序调用自身的编程技巧称为递归,是函数自己调用自己. 使用递归要注意的有两点: 递归就是在过程或函数里面调用自身: 在使用递归时, 必须有一个明确的递归结束条件, 称为递归出口. 递归分为两个阶 ...

  3. PHP 递归和递推思想

    递归思想(递归函数): 递归思想的一个基本形式是在一个函数中,有至少一条语句,又会去调用该函数自身.(求n!问题用递归:杨辉三角问题用过递归-) <?phpfuntion digui($n){i ...

  4. php中的递归思想,PHP 递归和递推思想

    递归思想(递归函数): 递归思想的一个基本形式是在一个函数中,有至少一条语句,又会去调用该函数自身.(求n!问题用递归:杨辉三角问题用过递归-) funtion digui($n){ if($n==1 ...

  5. 累加、迭代、递推、穷举、递归 ,等运算,笔记

    8.计算 8.1累加: 累加:将一系列的数据加到一个变量里面,最后得到了累加的结果. 一般形式: 累加:V+=e: 累积:V*=e: V代表累加和累积,e代表累加累积项. 算法要点: 1.    初始 ...

  6. 算法笔记方法论3 递推法与递归法

    你站在桥上看风景看风景的人在楼上看你明月装饰了你的窗子你装饰了别人的梦--卞之琳 递推算法的特点 一个问题的求解需要大量重复计算,在已知的条件和所求问题之间总存在着某种相互联系的关系,在计算时,我们需 ...

  7. C语言解决迭代递推问题

    1.什么是迭代递推问题?问题的求解过程是不断用新值取代变量的旧值,或由旧值不断递推出变量的新值. 2.怎么求解迭代递推问题?用循环,确定迭代变量,找出问题中的迭代表达式. 例1.将斐波那契数列中大于t ...

  8. 机器人学之动力学笔记【9】—— 牛顿-欧拉 递推动力学方程

    机器人学之动力学笔记[9]-- 牛顿-欧拉 递推动力学方程 1. 定义线加速度 2. 定义角加速度 3. 推导线加速度 4. 推导角加速度 5. 质量分布(Mass Distribution) 6. ...

  9. Javascript迭代、递推、穷举、递归常用算法实例讲解

    来源 | https://www.jb51.net/article/155800.htm 累加和累积 累加:将一系列的数据加到一个变量里面.最后的得到累加的结果 比如:将1到100的数求累加和 小球从 ...

最新文章

  1. c++调用shell命令
  2. 解决Access denied for user #39;#39;@#39;localhost#39; to database #39;mysql#39;问题
  3. [CODEVS 1244] 云中通信
  4. 每天一个linux命令(53)--ps命令
  5. python优化算法_python – 优化算法
  6. python安装环境配置
  7. vc浏览器_【36氪基金X一刻】零基础VC/PE行研标准班7月10日线上开课
  8. 2018-05-21 Linux学习
  9. opencv4.5.5的下载与环境配置
  10. ESP32烧录Arduino生成的bin文件
  11. matplotlib堆积图
  12. 计算机系统应用属于ei,2018年度中心成员发表论文清单(SCI、EI收录)
  13. deepin---获取root权限
  14. 微博的传播特性在媒体营销中的优势
  15. 小萌库- 新海诚那些唯美感人的动漫
  16. docker container的操作
  17. AAAI 2022 | 量化交易相关论文(附论文链接)
  18. android 三屏手机游戏,大象侠攻略三屏操作手速必须要快
  19. 解决Windows 11网络连接问题:教你轻松排查网络故障
  20. OPPO R9tm怎么刷机 OPPO R9tm的刷机教程 OPPO R9tm完美解除账号锁

热门文章

  1. VMware排错:Number of virtual devices exceeds the maximum for a given controller
  2. C6000系列DSP的内联函数
  3. 通信系统中对眼图的理解(一)
  4. C++实现质因数分解
  5. 计算机三级考试网络技术怎么复习,2017计算机三级考试的三大复习阶段(网络技术为例)...
  6. Office中如何实现公式颜色的更改?
  7. 梯度累加策略对准确率的影响
  8. python for循环习题
  9. iOS--OCR图片识别
  10. Aspose.Pdf 系列组件介绍