MATLAB实战 | 求水仙花数

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

01、循环结构

1. for语句

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

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

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

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

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

图片

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

图片

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

图片

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

图片

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

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

程序运行结果如下:

猜你喜欢

转载自blog.csdn.net/qq_41640218/article/details/134756025