viết chương trình tính tổng sau s=2+6+10+...

2 câu trả lời

uses crt;
var i,n,s:longint;
begin
clrscr;
   write('Nhap n: ');readln(n);
   for i:=1 to n do 
      if i mod 2=0 then s:=s+i;
   writeln(s);
readln 
end.

nhận xét: $s = 1*2 + 2*3 + 3*4 + ... + n*(n+1) /text{(với n là số số hạng)}$

sử dụng tin: for từ 1 -> n s := s + i * (i + 1)

sử dụng toán:

$3s = 1*2*3+2*3*3+3*4*3+...+n*(n+1)*3 = 1*2*(3-0)+2*3*(4-1)+3*4*(5-2)+...+n*(n+1)*((n + 2) - (n - 1)) = 1*2*3-0*1*2+2*3*4-1*2*3+3*4*5-2*3*4+...+n*(n+1)*(n+2)-(n-1)*n*(n+1) = n*(n+1)*(n+2)$

==> $s = n*(n+1)*(n+2) div 3$