
如果 if 为笔误,请将Matlab代码中的 if 关键字改成 while 即可。
这里有两个版本,一个是贴近C语言流程的版本,另一个是向量化以后效率更高的版本
注意:sum变量名与Matlab的内置函数sum同名,因此在Matlab代码中改用s表示偶数和
[1] C-Style
s = 0
number = input('')
if number <0
disp('请输入一个正数')
number = input('')
end
for ii = 0: number-1
if mod(ii, 2) == 0
s = s + ii
end
end
disp(['所有正偶数之和为:', num2str(s)])
[2] Matlab-Native
disp('请输入一个正数')
number = input('')
if number <0
disp('请输入一个正数')
number = input('')
end
s = sum(0: 2: number-1)
disp(['所有正偶数之和为:', num2str(s)])
for y=20:30if y==15
x=1
end
m=15n=5x=0
for i=1:n
set(i)=i
end
position=n
while set(1) <m - n + 1
if(set(n)==m)
position=position-1
else
position =n
end
set(position)=set(position)+1
for i=position+1:n
set(i)=set(i-1)+1
end
if set(5)+set(1)+set(2)+set(3)+set(4)==y
x=x+1
end
end
disp(['when y= ' num2str(y) ' so you want to look ' num2str(x)])
end
clear allsum=0
for i=1:1000
k=0
for j=2:i/2
if(mod(i,j)==0) k=1
end
end
if(k==0)
sprintf('%d\n',i)
sum=sum+i
end
end
sprintf('%d\n',sum)
这个是按照你第一个代码转换来的。第二段代码你找着上面那个自己转换就行了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)