-1
所以我必须写程序,解决了这些规则:为什么Matlab忽略我的语句?
找到一个六位数字,其中第一个数字比第三多一个,第二个数字比第四少一个,第五位是一个不到第三位,第六位比第四位多一位。第二个和第三个数字的总和等于第一个数字。所有数字的总和是三十。
我只允许使用嵌套for
和if
陈述,这就是我想出了:
for I = inf
for n4 = (1:9)
n6 = n4 + 1;
n2 = n4 -1;
for n3 = (1:9)
n1 = n3 + 1;
n5 = n3 - 1;
if (n1 - n2 == n3)
if (n1 + n2 + n3 + n4 + n5 + n6 == 30)
break
end
end
end
end
end
我遇到的问题是,Matlab的忽略了我所有的if
语句,因为在的结束程序,n1 - n2 = 0
,n3 = 9
,以及总和n1+n2+...+n6 = 22
而不是30
。这是我在Matlab中的第一个项目,所以我希望我给了这个问题足够的信息, 谢谢!
一次调用'break'只会跳出最内层的for循环。您需要稍后保存这些变量以保持安全。否则外循环继续进行,覆盖你的数字。另外,'for I = inf'可能不会做你认为的事情。 –
我不明白你的问题。当我运行你的代码时,它就像一个魅力,我得到一个答案,说n1 = 9,n2 = 1,n3 = 8,n4 = 2,n5 = 7,n6 = 3。 –
@NickyMattsson如果您完全按照书面方式运行代码,那么您无法获得该结果。 – excaza