MATLAB实战 | 求水仙花数

举报
TiAmoZhang 发表于 2023/09/27 14:31:02 2023/09/27
【摘要】 循环结构的基本思想是重复,即利用计算机运算速度快以及能进行逻辑控制的特点,重复执行某些语句,以满足大量的计算要求。虽然每次循环执行的语句相同,但语句中一些变量的值是变化的,而且当循环到一定次数或满足条件后能结束循环。循环是计算机解题的一个重要特征,也是程序设计的一种重要技巧。MATLAB提供了两种实现循环结构的语句: for语句和while语句。

image.png

01、循环结构


1. for语句



一般情况下,对于事先能确定循环次数的循环结构,使用for语句是比较方便的。for语句的格式如下:

image.png


其中,“表达式1: 表达式2: 表达式3”是一个冒号表达式,将产生一个行向量。表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。

for语句的执行过程如图1所示。首先计算3个表达式的值,产生一个行向量,再将向量中的元素逐个赋给循环变量,每次赋值后都执行一次循环体语句,当向量的元素都被使用完时,结束for语句的执行,而继续执行for语句后面的语句。

image.png


■ 图1 for语句执行过程

关于for语句的执行过程还要说明以下几点。

(1) for语句针对向量的每一个元素执行一次循环体,循环的次数就是向量中元素的个数,也可以针对任意向量。例如,下面的循环结构共循环4次,k的值分别为-1、32、20、5。

image.png


(2) for语句中的3个表达式只在循环开始时计算一次,也就是说,向量元素一旦确定将不会再改变。如果在表达式中含有变量,即便在循环体中改变变量的值,向量的元素也不改变。例如,下列for语句中的向量元素为1、3、5、7、9,不会因循环体中改变n的值而改变向量的元素。

image.png


(3) 退出循环之后,循环变量的值就是向量中最后的元素值。例如,下列for语句中的向量元素为1、3、5、7、9,在for循环之后的k值是9。

image.png


(4) 当向量为空时,循环体一次也不执行。例如,下列for语句中的冒号表达式产生一个空向量,即向量中没有任何元素,这时循环一次也不执行。

image.png


【例1】一个3位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部的水仙花数。

采用穷举方法,对所有的3位整数逐个进行判断,进而找出全部水仙花数。要判断水仙花数,关键的一步是先分别求3位整数的个位、十位、百位数字,再根据条件判断该数是否为水仙花数。程序如下:

image.png


程序运行结果如下:

image.png

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。