用matlab解决此编程问题
有一堆零件(M到4M之间),如果分成4个零件一组的,则多2个零件;若分成7个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。用matlab编程求这堆零件总数...
有一堆零件(M到4M之间),如果分成4个零件一组的,则多2个零件;若分成7
个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。用matlab编程求这堆零件总数。(其中M为你的学号后三位) 展开
个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。用matlab编程求这堆零件总数。(其中M为你的学号后三位) 展开
3个回答
展开全部
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强项是矩阵运算,所以采用矩阵计算的思路写代码,比循环简洁多了。
展开全部
可这样:
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
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),回车
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用剩余定理一下子就搞定了!
追问
不怎么会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询