用matlab解决此编程问题

有一堆零件(M到4M之间),如果分成4个零件一组的,则多2个零件;若分成7
个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。用matlab编程求这堆零件总数。(其中M为你的学号后三位)

M=517; % 改成你的学号后三位
x = [M:4*M];
a = mod(x,4)==2;  % 四个一分是否剩余2?
b = mod(x,7)==3;  % 七个一分是否剩余3?
c = mod(x,9)==5;  % 九个一分是否剩余5?
y = x(a&b&c)      % 同时满足上述三个条件的M即为所求

上面针对M=517的计算结果:

y =

         626         878        1130        1382        1634        1886

追问

这是MATLAB的代码么?

追答

当然是matlab的代码,matlab强项是矩阵运算,所以采用矩阵计算的思路写代码,比循环简洁多了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-15
可这样:
function a=shengyushu(m)
%例:命令行输入:a=shengyushu(325)
M=m:4*m;
a=[];
for k=1:length(M);
if mod(M(k),4)==2
if mod(M(k),7)==3
if mod(M(k),9)==5
a=[a M(k)];
end
end
end
end追问

运行不起来

追答

要先保存程序,再在命令窗口输入:a=shengyushu(325),回车

本回答被网友采纳
第2个回答  2016-06-15
用剩余定理一下子就搞定了!追问

不怎么会