迭代算法也称为辗转法,它是一种不断用旧的变量值递推得到新值的过程。迭代法是用计算机解决问题的一种基本方法,它利用计算机运行速度快、适合做重复性操作的特点,让计算机对一组操作重复执行,每次执行时都是从变量的旧值推出一个新值。

迭代法与递推法的相同之处在于都是使用循环语句实现,不同之处在于:

<>迭代法使用while循环求解,递推法使用for循环实现。
<>迭代法在迭代结束时得到一个解或一组解;递推法的循环控制变量改变一次就可以得到一个解,循环结束后得到一系列的解。
<>迭代法的迭代次数事前是未知的,递推法的迭代次数事前是已知的。

迭代法可以分为精确迭代和近似迭代。

精确迭代法
 精确迭代法是指通过迭代可以得到一个精确的解。求最大公约数、进制转换、质因数的分解、谷角猜想所用的方法都属于精确迭代法。

求最大公约数与最小公倍数

任给两个正整数M和N,求最大公约数和最小公倍数。

【分析】
利用辗转相除法求最大公约数,然后根据最大公约数得到最小公倍数。辗转相除法求最大公约数的步骤如下:

(1)用M对N求余,余数记作R,即R = M%N。
(2)将除数作为被除数,余数作为除数求新的余数,即M=N,N=R。
(3)重复执行步骤(2),直到余数为0为止,此时N即为所求。
最小公倍数=M×N / 最大公约数

code:

#include<stdio.h>
#include <iostream>
void main()
{int m, n, m1, n1, r;printf("请输入两个正整数:");scanf("%d,%d", &m, &n);m1 = m;n1 = n;r = m%n;while (r != 0){m = n;n = r;r = m%n;}printf("%d和%d的最大公约数是%d.\n", m1, n1, n);printf("%d和%d的最小公倍数是%d.\n", m1, n1, m1*n1 / n);system("pause");
}

结果:

【说明】

为了能输出原来的正整数m和n,需要重新定义变量m1和n1,将原来的m和n保存起来。

迭代算法1——精确迭代法之最大公约数与最小公倍数相关推荐

  1. 迭代算法2——精确迭代法之十进制转换为二进制

    [分析] 用除二取余法.具体步骤如下: (1)将该数除以2,得到商和余数. (2)将商作为被除数,并除以2,得到新的商和余数. (3)重复执行(2),直到商为0为止.将余数反过来排列即为所求. cod ...

  2. 【算法总结】数学问题-最大公约数和最小公倍数

    [算法总结]最大公约数和最小公倍数 一.最大公约数(GCD:greatest common divisor) 欧几里得算法: 若 a.b 全为零则它们的最大公约数不存在:若 a.b 其中之一为零,则它 ...

  3. JavaScript算法(实例五)最大公约数和最小公倍数 / n的倍数之和 / 组合数

    1.输入两个数,求出他们的最大公约数和最小公倍数. function foo(a,b){var p = a*b;while(b!=0){var m = a%b;a = b;b = m;} consol ...

  4. 迭代算法8——近似迭代法之求定积分

    求定积分 [分析] 定积分 的几何意义就是求曲线f(x)与y=0,x=a,x=b所围成的曲顶梯形的面积.为了得到定积分的值,需要将连续的对象分割为容易求解的子对象,然后利用迭代法对表达式反复操作.求定 ...

  5. 迭代算法7——近似迭代法之牛顿迭代法

    利用牛顿法求方程x^4-3x^3+1.5x^2-4=0的根. [定义] 牛顿迭代法是用于求方程或方程组近似根的一种常用算法. 1.推导过程 设已知方程f(x)=0的近似根为x0,则在x0处的泰勒展开式 ...

  6. 迭代算法5——近似迭代法之求一个数的平方根

    [分析] 求平方根的迭代公式:x1 = 1/2 × (x0 + a/x0). 算法步骤如下: (1)先定一个初值x0,作为a的平方根值,取a/2作为a的平方根初值. (2)利用上述迭代公式求出一个x1 ...

  7. 迭代算法6——近似迭代法之二分法

    利用二分法求方程3x^3-13x+2=0在区间[1,9]的根. [分析] 1.相关概念 零点:函数y=f(x)的零点就是f(x)=0的根,如果y=f(x)有根存在,则说明函数y=f(x)的图像与x轴有 ...

  8. 三种算法求两个正整数的最大公约数和最小公倍数;求三个数的最大公约数和最小公倍数

    第二次作业 题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整 ...

  9. c语言用迭代法求最大公约数,用迭代法求两个数的最大公约数和最小公倍数

    c语言论文 用迭代法求两个数的最大公约数和最小公倍数 化工09110605 摘要:迭代法是一种循环控制语句和循环结构程序的设计方法.在计算机解决问 题的时候,总希望从复杂的问题中找到规律,并归结为简单 ...

最新文章

  1. layer弹窗在IOS上,被软键盘挤到上边的解决方法
  2. 借助Scrum工作室使用敏捷原则提升组织响应能力
  3. 【鸿蒙 HarmonyOS】UI 组件 ( 多选按钮 | Checkbox 组件 )
  4. 【BIRT】使用rptlibrary设置统一数据源
  5. P5732 【深基5.习7】杨辉三角(python3实现)
  6. 世界第一编程语言是Python「为什么那么火?」
  7. Go 语言设计与实现纸质书出版,为信仰补票
  8. ModelCoder中的超密时间模型
  9. Makefile的学习笔记
  10. Git/mercurial...版本控制分支曲线图解析
  11. 游戏内存读取工具_不因内存弃旧爱,东芝Canvio Gaming移动硬盘评测
  12. 关关小说采集器规则正则表达式方法
  13. 权限持久化---映像劫持检测(Shift后门)
  14. 三维动画制作软件有哪些?
  15. 教你如何入门【大数据开发】?
  16. 透视投影中已知两平面的单应矩阵,能否求出这两平面的夹角?
  17. 统一监控报警平台架构设计思路
  18. 股票重大利好开盘封涨停买不到?试试这个办法
  19. 在Element UI中表格根据数据动态变化显示表格的内容
  20. 加州欧文计算机工程专业,加州大学欧文分校计算机工程博士专业排名

热门文章

  1. 联想新款 Yoga Slim 7i Carbon 评测
  2. OK,已经成为python大师了
  3. OV2640灰度处理和软件二值化
  4. lxmert部分代码的一点理解
  5. 通达OA v11.7 auth_mobi.php 在线用户登录漏洞复现
  6. html5 css3知识点,HTML5和CSS3知识点总结
  7. d3js绘制y坐标轴_用d3js创建一个简单的矩形图
  8. HDU 3664 Permutation Counting
  9. 输入圆的半径计算面积和周长-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第2章-课后作业)
  10. android 禁用dlsym_Android10 aarch64 dlopen Hook