
if 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
根据需求猜测帆枯,题目中C代码第10行的 if 可能是 while,我的Matlab代码保留了 if 的写法。如果 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)])
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)