用matlab解决此编程问题

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

2016-06-15 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:6564万
展开全部
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强项是矩阵运算,所以采用矩阵计算的思路写代码,比循环简洁多了。
我行我素850915
2016-06-15 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1755万
展开全部
可这样:
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),回车
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希波鸿0HDeac
2016-06-15 · TA获得超过427个赞
知道小有建树答主
回答量:591
采纳率:68%
帮助的人:168万
展开全部
用剩余定理一下子就搞定了!
追问
不怎么会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式