我在Matlab中编写了一个while循环,它应该确定“a”参数“n”的值超过300.我知道“n”应该是17,但我得到一个值4代替。有没有人看到这个问题?
代码如下:
a = 10;
k = 0.5;
n = 2;
while a < 300
for m = 1:5
a = a + (a*k) + n;
end
n = n + 1;
end
编辑: 由于Barmar的评论,我意识到我没有重新初始化我的“a”变量。虽然代码看起来效率可能不高,但这对我有用:
a = 10;
k = 0.5;
n = 2;
while a < 300
a = 10;
for m = 1:5
a = a + (a*k) + n;
end
if a >= 300
break
end
n = n + 1;
end
答案 0 :(得分:0)
如果您的公式正确,那么4就是您应该期待的答案。第一个for循环运行将a转换为respsective值:
17, 27, 42, 65, 99
然后将n变为3.下一次运行变为:
151, 229, 346, 522, 786
请注意,a现在是&gt;但是我们必须再增加一次。因此n = 4。