3倍率为3从0到100

25意见(过去30天)
米娜
米娜 2021年6月4日
评论: 沃尔特罗伯森 2021年6月5日
在不使用IF构造或矢量化的情况下计算3从0到100的所有倍数的总和。
我不确定如何在不使用IF构造的情况下进行。
总和= 0;
为了x = 0:100
如果mod(x,3)== 0
sum = sum + x;
结尾
结尾
fprintf(' sum = %4d \n',总和);
1条评论
David Fletcher.
David Fletcher. 2021年6月4日
您正在使用IF构造 - 如果构造的唯一原因是过滤掉您不需要的数字。因此,不要首先生成无用的数字。
作为一个提示 - 您可以在写入时使用步长大小:对于x = 0:100

登录评论。

答案(3)

rik.
rik. 2021年6月5日
如果我是你的老师,我会告诉你用一个循环,让你自己决定什么是不允许做的。
在这种情况下,您需要读取冒号函数的文档。它会告诉您如何介绍一步大小。
博文冒号
您还应该避免使用sum作为变量名,因为您可能会在代码的其他地方使用sum函数。如果它已经是一个变量,将会导致奇怪的问题。
1条评论
沃尔特罗伯森
沃尔特罗伯森 2021年6月5日
我认为结肠将算作矢量化。
因此,是否在a中使用冒号是有问题的 为了 计数为矢量化。Matlab模型使用是 仿佛 评估极限表达,并提前存储所有术语,但有证据表明,在使用结肠范围的情况下,实施不这样做。

登录评论。


Manas Minnoor.
Manas Minnoor. 2021年6月5日
编辑:Manas Minnoor. 2021年6月5日
嘿mina,
您只需使用冒号运算符在for循环中仅生成3的倍数。
请参考以下文档查看使用for循环的不同方法:
希望这个有帮助。
1条评论
rik.
rik. 2021年6月5日
请不要将完整的解决方案发布到作业问题。万博 尤文图斯只有鼓励作弊。

登录评论。


沃尔特罗伯森
沃尔特罗伯森 2021年6月5日
s = 0;
为了x = 0:100
x = x + (mod(x,3) == 0);
结尾
S.
S = 1683.
总和(0:3:100)
ANS = 1683.
2评论

登录评论。

标签

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!