Getting number of variables whose sum is lower than certain number
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi all,
I have a problem because I don't know how to get the number of X's whose sum is lower than number N. Condition that must be fulfilled is that loop should repeat until the sum of X's reaches or exceeds number N. In case the sum exceeds number N, *it should give me 'There are 3 numbers X.' which is 25, 36 and 16. Number 49 should not be taken into consideration since when it is included in the sum (126) it exceeds number N (100).*
Here is my try but obviously there should be something more:
N=100;
r=[5 6 4 7 3 2];
s=0;
for i=1:1:length(r)
X=r(i).^2;
sprintf('X = %.1f',X)
s=s+X;
if (s > N || s == N)
break
end
end
sprintf('Sum = %.1f',s)
sprintf('There are %d numbers X.'length(X))
Output
ans =
X = 25.0
ans =
X = 36.0
ans =
X = 16.0
ans =
X = 49.0
ans =
Sum = 126.0
ans =
There are 1 numbers X.
I hope I explained as clearer as possible. Thank you for your help!
0 Commenti
Risposta accettata
Star Strider
il 9 Dic 2017
Your for loop increments the counter until you exit it, so ‘i’ tracks the quantity of numbers you used to complete the loop.
Try this:
sprintf('There are %d numbers X.', i)
8 Commenti
Star Strider
il 10 Dic 2017
My pleasure.
If I remember correctly, that’s what I got as well.
A double loop would likely be overkill. You could put in a separate counter for ‘Y’, however since you are summing each of them, adding the sums, and then using that sum as your exit criterion, the counters for both would be the same. (There is no condition on calculating ‘Y’ that depends on ‘X’, ‘s’, ‘m’, or ‘k’, so the same single iteration counter ‘i’ applies to all of them.)
I would just leave it as is, unless you also want to add a separate fprintf statement for ‘Y’, using the same counter.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!