Дано целое число N (> 0). Найти сумму 11 + 22 + … + NN. Чтобы избежать целочисленного переполнения, вычислять слагаемые этой суммы с помощью вещественной переменной и выводить результат как вещественное число — Pascal(Паскаль)

program Project1;
 
var
  i, N : Integer;
  Num, Sum : Extended;
  S : String;
begin
  repeat
    Writeln('Задайте целое число N:');
    Readln(N);
    Sum := 0;
    for i := 1 to N do begin
      Num := i * 10 + i;
      Sum := Sum + Num;
    end;
    Writeln('Сумма ряда: 11 + 22 + ... + NN при N = ', N, ' равна: ', Sum:0:0);
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.

Следующий вариант

program Project1;
 
var
  i, N, Num, Sum : Extended;
  S : String;
begin
  repeat
    Writeln('Задайте целое число N:');
    Readln(N);
    Sum := 0;
    i := 0;
    while i < N do begin
      i := i + 1;
      Num := i * 10 + i;
      Sum := Sum + Num;
    end;
    Writeln('Сумма ряда: 11 + 22 + ... + NN при N = ', N:0:0, ' равна: ', Sum:0:0);
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.

Следующий вариант

uses crt;
var n,i:integer;
    k,s,p:real;
begin
clrscr;
repeat
write('Натуральное n=');
readln(n);
until n>0;
i:=0;s:=0;
k:=10;
while i<n do
 begin
  i:=i+1;
  if (i mod 10=0)and(frac(ln(i)/ln(10))=0) then k:=k*10;
  p:=k*i+i;
  write(p:8:0);{для проверки, можно убрать}
  s:=s+p;
 end;
writeln;
write('S=',s:0:0);
readln
end.

Leave a Comment

+ 38 = 44