Sum of integers up to n using a while loop

147 vues (au cours des 30 derniers jours)
Will Murphy
Will Murphy le 15 Fév 2020
Commenté : Will Murphy le 15 Fév 2020
Hi, I've recently started coding as part of my uni maths course, however I am struggling very much with the learning curve.
I want to know how to sum all the positive numbers up to and including n by using a while loop.
From what I have gathered already I would use in the case of n = 10
s = 0
n = 10
while s < ((n + 1) * n / 2)
N = N + 1
s = s + N
end
disp(s)
What could I do to make this work? Any help would be greatly appreciated,
  1 commentaire
Matt J
Matt J le 15 Fév 2020
Are we supposed to see why it doesn't work now?

Connectez-vous pour commenter.

Réponse acceptée

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH le 15 Fév 2020
try it yourself with a for (see documentation)
You can be guided by this example:
s = 0;
k=1;
n = 10 ;
while k <= n
s=s+k;
k=k+1;
end
disp(s)
In the end, the idea is that with practice you can do all this code in a line like this:
n=10
s=sum(1:n)
  3 commentaires
Turlough Hughes
Turlough Hughes le 15 Fév 2020
Line 4 is
while k <= n
k <= n is checking if the current value of k is less than or equal to n. If k is less than or equal to n then the condition is true and another iteration of the loop is implemented, if it is false, the loop is terminated.
Every time the loop is iterated, the value of k increases by 1 due to line 6
k = k+1;
It might help you to see the values as the loop progresses by running the following code:
s = 0;
k = 1;
n = 10 ;
while k <= n
fprintf('Iteration Number: %d\n\nValues at start of iteration \nk = %d \ns = %d\n',k,k,s)
s=s+k;
k=k+1;
fprintf('Values at end of iteration \nk = %d \ns = %d\n\n\n',k,s)
end
Will Murphy
Will Murphy le 15 Fév 2020
Ah okay, I had misinterpreted the symbols. All cleared up now, thanks for the help.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by