Summation of all odd numbers from 1 to 451
조회 수: 40 (최근 30일)
이전 댓글 표시
The following lines accurately sum when d (common difference) is 1, however, as soon as it changes, I get a wrong answer, does anyone understand why? I assume I am quite ignorant, but I would love any help I can get:
% Initialize n, a, d and s
n = 451;
a = 1;
d = 2;
S = 0;
% Compute S by adding the terms
for i = 1:n
S = S+a+(i-1)*d;
end
%Call S
S
Command Window:
S = 203401
- Where S should actually equal: 51,076
댓글 수: 0
답변 (2개)
Voss
2022년 8월 19일
The for loop iterates n times, so after it's done, S represents the sum of n terms, which is fine when d = 1, but when d > 1, the summation you want has less than n terms.
In other words, there are 451 integers between 1 and 451 (inclusive), but only (451+1)/2 = 226 odd integers in that range and only (451+2)/3 = 151 integers congruent to 1 mod 3 (i.e., 1, 4, 7, 10, ...) in that range.
So "for i = 1:n" must be modified to take into account the value of d, so that the loop iterates the correct number of times.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!