我被困在试图弄清楚这一点。我有一个数组:
a = [ 1 1 1 2 1 1 1 3 2 1 1 2 1 1 1]
我想要add the values in the array so that it equal to 10
。一旦添加的值达到 10,我希望数组再次开始添加值,直到它达到 10。我在这里面临两个问题,
1)如何添加数组,以便sum = 10
每次。请注意,在数组中,有3
. 如果我之前添加所有值3
,我得到8
并且我只需2
要从3
. 我需要确保将余数1
添加到下一个数组中以获得 sum 10
。
2)一旦到达循环10
并要求它继续求和到下一个值以获得另一个值,我如何打破循环10
?
我创建了一个循环,但它只适用于数组的第一部分。我不知道如何让它继续。代码如下:
a = [ 1 1 1 2 1 1 1 3 2 1 1 2 1 1 1];
c = 0;
for i = 1:length(a)
while c < 10
c = c + a(i);
break
end
end
请帮忙。谢谢
这应该做你正在尝试的。它显示每次总和等于 10 时的索引。用你的测试用例检查这个。rem
存储每次迭代中的残差和,并在下一次迭代中结转。其余代码与您正在执行的操作类似。
a = [ 1 1 1 2 1 1 1 3 2 1 1 2 1 1 1];
c = 0;
rem = 0;
i = 1;
length(a);
while(i <= length(a))
c = rem;
while (c < 10 && i <= length(a))
c = c + a(i);
i = i + 1;
if(c >= 10)
rem = c - 10;
break
end
end
if(c >= 10)
disp(i-1)
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句