一.基本阐述

大家有时会将迭代和递归搞混,但是他们其实是有差别的.

递归,就是在运行的过程中调用自己。
迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。

迭代算法是用计算机解决问题的一种基本方法,一般用于数值计算。累加、累乘都是迭代算法的基础应用。典型案例:牛顿迭代法”。

在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量

在什么时候结束迭代过程?
这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件

基本步骤:

1.确定迭代模型:分析得出前一个(或几个)值与其下一个值的迭代关系数学模型;
2.建立迭代关系式
3.对迭代过程进行控制

注意:迭代算法必须要有终止条件,以免陷入死循环。


二.案例1:

1. 题目

迭代法求两个数的最大公约数(辗转相除法)
基本思路:设两数为a、b(a>b),用a除以b,得a÷b=q…r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用b除以r1,得b÷r1=q…r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除r2,如此下去,直到能整除为止。
当然a与b的大小并不需要在意,因为在第一次辗转相除后,二者的位置关系就发生了变化。

2.代码

#include <stdio.h>
#include <stdlib.h>
int main()
{int a,b;scanf("%d %d",&a,&b);int maxgys(int a,int b);  //函数原型声明(最大公因数)printf("%d",maxgys(a,b));return 0;
}
int maxgys(int a,int b)
{while(b!=0){int r;r=a%b;a=b;b=r;}return a;
}

三.案例 2:

1.题目

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例1:

输入:x = 121
输出:true

示例2:

输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例3:

输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。

这道题目虽然很简单但其中用到了迭代的思想

2.代码


以上简单阐述了迭代方法并举了典型的案例,希望对大家有所帮助!!!

什么是迭代(迭代法)相关推荐

  1. 常见算法—累积累加、迭代、递推、递归

    累加/累积 一般形式: 累加:v+=e: 累计:v*=e: 算法要点: 1)初始化 初始化v和e 累加:v=0: 累积:v=1: E的初始化,如果累加/积项比较复杂,可能会分解为几个子项分别初始化,比 ...

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

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

  3. 信息学奥赛一本通 2024:【例4.10】末两位数

    [题目链接] ybt 2024:[例4.10]末两位数 [题目考点] 1. 同余定理 根据同余定理,有: (a∗b)%m=(a%m∗b%m)%m(a*b)\%m = (a\%m * b\%m)\%m( ...

  4. 信息学奥赛一本通 1084:幂的末尾 | OpenJudge NOI 小学奥数 7833

    [题目链接] ybt 1084:幂的末尾 OpenJudge NOI 小学奥数 7833:幂的末尾 [题目考点] 1. 同余定理 根据同余定理,有: (a∗b)%m=(a%m∗b%m)%m(a*b)\ ...

  5. 信息学奥赛一本通 1083:计算星期几 | OpenJudge NOI 小学奥数 7831

    [题目链接] ybt 1083:计算星期几 OpenJudge NOI 小学奥数 7831:计算星期几 [题目考点] 1. 同余定理 根据同余定理,有: (a∗b)%m=(a%m∗b%m)%m(a*b ...

  6. js的常用功能及属性总结

    总结·复习 章节1:基础知识 1.关于<script>: 所有js代码都必须写到标签<script></script>中,否则视为无效.而且此标签可以写到</ ...

  7. Leetcode Solutions - Part 1

    回溯: 字符串的排列 回溯:78. 子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集). 解集 不能 包含重复的子集.你可以按 任意顺序 返回解集. 示例 ...

  8. 计算方法 [课程学习]

                                           计算方法       [课程学习]      201809 有效数字的规格化形式: 计算有效数字:误差限,规格化,得到m, ...

  9. ACMNO.16用迭代法求 。求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001。 输出保留3位小数 输入 X 输出 X的

    题目描述 用迭代法求 . 求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001.输出保留3位小数 输入 X 输出 X的平方根 样例输 ...

  10. python实现gauss-seidel迭代公式_python实现高斯(Gauss)迭代法的例子

    python实现高斯(Gauss)迭代法的例子 我就废话不多说了,直接上代码大家一起看吧! #Gauss迭代法 输入系数矩阵mx.值矩阵mr.迭代次数n(以list模拟矩阵 行优先) def Gaus ...

最新文章

  1. bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治
  2. JQueryMiniUI按照时间进行查询
  3. 计算机系统基础 南京大学,计算机系统基础(一):程序的表示、转换与链接
  4. Phoenix:全局索引设计实践
  5. hdoj2602:Bone Collector(01背包问题-dp-模版题)
  6. 编写测试用例方法之等价类划分法
  7. 图解通信原理与案例分析-10:楼宇有线对讲电话机案例--模拟基带点对点通信详解
  8. NoSQL Scylla Open Source 3.0食量比Cassandra大
  9. PM:iOS 为什么感觉比 Android 流畅?
  10. 电话机器人是如何筛选意向客户的
  11. 计算机桌面模糊了,显示屏模糊,详细教您怎么解决电脑屏幕模糊
  12. NSoup Select 示例
  13. [16e]在线Q绑地址
  14. 【PaddleSpeech-学习笔记】第七章:声音合成
  15. java从配置文件中读取参数
  16. 免费白嫖 OCR 工具(专业版+简易版) 你适合哪个呢?
  17. vue3 setup 怎么获取vue实例上的全局变量
  18. 最大流matlab代码,matlab求最大流问题
  19. 我喜欢听歌,可是我却不会唱歌,就是唱
  20. iphone QQ协议,andriodQQ协议,安卓QQ协议

热门文章

  1. 微端游戏启动器launcher的制作(序篇)
  2. 基于javacv(推流),nginx(流媒体服务器),VCL(播放器)搭建直播视频
  3. java发送邮件问题
  4. 银河土星_不要购买三星银河笔记20
  5. Centos7+Elasticsearch7.4.2+Kibana+IK分词+ElasticHD 安装配置以及集群搭建
  6. 高通MTK麒麟 手机平台USB3.0方案对比
  7. latex tex studio 表格大小 整体缩小 过长 过宽 跨栏 跨页
  8. 如何利用公众号赚更多钱?
  9. LostDungeon迷失地牢-壹
  10. 计算机音乐文爱图片,CG/贺敬轩《文爱》[FLAC/MP3-320K]