C++程序设计基础学习笔记:(4)循环结构:周而复始,求同存异

相关博客目录

C++程序设计基础学习笔记:(1)初识C++语言:从认识变量和常量开始,数据的表示
C++程序设计基础学习笔记:(2)计算:从数据运算开始,数据简单运算
C++程序设计基础学习笔记:(3)分支结构:无处不在的抉择
C++程序设计基础学习笔记:(4)循环结构:周而复始,求同存异
C++程序设计基础学习笔记:(5)数组:实现算法的利器
C++程序设计基础学习笔记:(6)指针:所向披靡的“金箍棒” 魂
C++程序设计基础学习笔记:(7)函数:面向过程的基础
C++程序设计基础学习笔记:(8)文件:让数据流动起来
C++程序设计基础学习笔记:(9)以人为本:用类与对象诠释现实世界
C++程序设计基础学习笔记:(10)从生物遗传说起,取其精华——继承与多态

第4章 循环结构:周而复始,求同存异

算法描述的三种基本结构

image-20210401141829408

4.1 简单循环结构:从计算一个圆的面积到多个圆的面积看循环结构

image-20210401141650927

循环定义及要点

循环就是反复持续地执行某些动作,有两部分组成

循环体:归纳出哪些操作需要反复执行
循环控制条件:这些操作在什么情况下反复执行

随着循环不断地执行,必须有一种方法使得循环控制条件最终不成立,循环可以退出,否则,就构成死循环,程序永远无法终止。

实现循环的语句

image-20210401142418411

While 循环语句格式

image-20210401142601139

for循环语句的格式

image-20210401142956156

表达式1: 对表达式2中的循环控制变量赋初值变量
表达式2: 循环控制逻辑表达式: 循环控制变量
表达式3: 改变表达式2中的循环控制变量的值

for语句与while语句比较

image-20210401143755412

(直到型循环)do-while 语句格式

image-20210401144000077

循环语句应用的一般原则

image-20210401144154788

循环算法的设计

目标:代码复用
使用相同代码完成每一次循环
image-20210401144224047

4.2循环结构程序设计:整数位数拆分

image-20210401144315940

4.3 循环结构程序设计:从Fibonacci数列看递推法

递推法

指从问题的已知条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果

递推初始条件确定

问题本身已经给定;
通过对问题的分析与化简后确定;

递推方向

顺推法

从已知初始条件出发,通过递推关系逐步推算出要解决的问题的结果的方法。如求Fibonacii数列

倒推法

在不知初始值的情况下,经某种递推关系而获知了问题的解或目标,从这个解或目标出发,采用倒推手段,一步步地倒推到这个问题的初始情况。如猴子吃桃

实现递推的步骤

(1)确定递推变量
要根据问题的具体实际,设置递推变量。

(2)建立递推关系
递推关系是指如何从变量的前一些值推出其下一个值,或从变量的后一些值推出其上一个值的公式(或关系)。

(3)确定初始(边界)条件
对所确定的递推变量,要根据问题最简单情形的数据确定递推变量的初始(边界)值,这是递推的基础。

(4)对递推过程进行控制
递推过程不能无休止地重复执行下去。递推过程在什么时候结束,满足什么条件结束,这是编写递推算法必须考虑的问题。

4.4 循环结构程序设计–从判断素数看循环语句中的break

image-20210401150359945

break & continue

image-20210401150648380

break & continue流程图

image-20210401150704547

4.5 嵌套循环:再从计算多个圆面积看内外循环的关系

image-20210401151232365

循环的嵌套

在一个循环结构中又完整地包含着另一个循环结构称为循环嵌套。嵌套层次一般不超过3层,以保证可读性。
image-20210401151222827

循环的嵌套设计原则

1.外层循环前相关变量的初始化;外层判断循环条件,满足进入外层循环体
2.内层循环前相关变量的初始化;内层判断循环条件
3.内层循环体执行
4.内层循环变量累加,回到2执行,直到不满足内层条件
5.外层循环变量累加,回到1执行,直到不满足外层循环条件,彻底退出循环

4.6 嵌套循环:从打印九九乘法表看内外循环的关系

image-20210401160355908

嵌套循环的常用设计方法

image-20210401155002950

4.7 循环结构程序设计–从百钱买百鸡问题看穷举法

image-20210401162213743

用穷举法解决问题

计算机的特点之一就是运算速度快、善于重复做一件事情,“穷举法”正是基于这一特点的最古老的算法。

穷举法基本思想是,根据问题中的“约束条件”,将所有可能的解一一列举出来,并逐个验证是否符合“约束条件”,找出其中符合要求的解

穷举法适合求解的问题是:可能的答案是有限个且答案是可知的,但又难以用解析法描述。这种算法通常用循环结构来完成。

穷举法的一般模式

列出问题的可能范围,一般用循环结构来实现,穷举一般使用for语句

将要穷举的变量i 作为循环控制变量,i∈ [a,b]

探究、挖掘出问题解的约束条件

根据约束条件优化算法,尽可能地缩小穷举范围,减少穷举次数,降低算法的时间和空间复杂度。

4.8 程序调试方法:单步调试法

image-20210401162519535

程序调试

image-20210401162310725

单步调试实际操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值