-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